1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <?php
- namespace dokuwiki\Action;
- use dokuwiki\Action\Exception\ActionDisabledException;
- use dokuwiki\Action\Exception\ActionException;
- use dokuwiki\Extension\AuthPlugin;
- /**
- * Class Logout
- *
- * Log out a user
- *
- * @package dokuwiki\Action
- */
- class Logout extends AbstractUserAction {
- /** @inheritdoc */
- public function minimumPermission() {
- return AUTH_NONE;
- }
- /** @inheritdoc */
- public function checkPreconditions() {
- parent::checkPreconditions();
- /** @var AuthPlugin $auth */
- global $auth;
- if(!$auth->canDo('logout')) throw new ActionDisabledException();
- }
- /** @inheritdoc */
- public function preProcess() {
- global $ID;
- global $INPUT;
- if (!checkSecurityToken()) throw new ActionException();
- // when logging out during an edit session, unlock the page
- $lockedby = checklock($ID);
- if($lockedby == $INPUT->server->str('REMOTE_USER')) {
- unlock($ID);
- }
- // do the logout stuff and redirect to login
- auth_logoff();
- send_redirect(wl($ID, array('do' => 'login'), true, '&'));
- // should never be reached
- throw new ActionException('login');
- }
- }
|