X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Flogout.php;h=8e903db22119ae8f69fb813fbb6bf8bff415d8ed;hb=1f9a9c69bc3f5d7b33f4f73da3252ec07b5f3a87;hp=0ff8dc7545e88957aa7bf8f987f134712d5c2ba3;hpb=4b9df58c90e25ea79aeec64c6e96f828fe06d7df;p=quix0rs-gnu-social.git diff --git a/actions/logout.php b/actions/logout.php index 0ff8dc7545..8e903db221 100644 --- a/actions/logout.php +++ b/actions/logout.php @@ -5,14 +5,14 @@ * PHP version 5 * * @category Action - * @package Laconica - * @author Evan Prodromou - * @author Robin Millette + * @package StatusNet + * @author Evan Prodromou + * @author Robin Millette * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 - * @link http://laconi.ca/ + * @link http://status.net/ * - * Laconica - a distributed open-source microblogging tool - * Copyright (C) 2008, Controlez-Vous, Inc. + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2008, 2009, StatusNet, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -28,38 +28,35 @@ * along with this program. If not, see . */ -if (!defined('LACONICA')) { +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -require_once INSTALLDIR.'/lib/openid.php'; - /** * Logout action class. * * @category Action - * @package Laconica - * @author Evan Prodromou - * @author Robin Millette + * @package StatusNet + * @author Evan Prodromou + * @author Robin Millette * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 - * @link http://laconi.ca/ + * @link http://status.net/ */ class LogoutAction extends Action { - /** * This is read only. - * + * * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { - return true; + return false; } /** * Class handler. - * + * * @param array $args array of arguments * * @return nothing @@ -68,12 +65,22 @@ class LogoutAction extends Action { parent::handle($args); if (!common_logged_in()) { + // TRANS: Client error displayed trying to log out when not 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! + } }