summaryrefslogtreecommitdiff
path: root/actions/logout.php
diff options
context:
space:
mode:
Diffstat (limited to 'actions/logout.php')
-rw-r--r--actions/logout.php26
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!
+ }
+
}