diff options
Diffstat (limited to 'actions/logout.php')
-rw-r--r-- | actions/logout.php | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/actions/logout.php b/actions/logout.php index 3977f90a0..c34b10987 100644 --- a/actions/logout.php +++ b/actions/logout.php @@ -46,20 +46,20 @@ require_once INSTALLDIR.'/lib/openid.php'; */ class LogoutAction extends Action { - + /** * This is read only. - * + * * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return false; } /** * Class handler. - * + * * @param array $args array of arguments * * @return nothing @@ -70,10 +70,20 @@ class LogoutAction extends Action if (!common_logged_in()) { $this->clientError(_('Not logged in.')); } else { - common_set_user(null); - common_real_login(false); // not logged in - common_forgetme(); // don't log back in! - common_redirect(common_local_url('public')); + if (Event::handle('StartLogout', array($this))) { + $this->logout(); + } + Event::handle('EndLogout', array($this)); + + common_redirect(common_local_url('public'), 303); } } + + function logout() + { + common_set_user(null); + common_real_login(false); // not logged in + common_forgetme(); // don't log back in! + } + } |