| 
							- <?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, ['do' => 'login'], true, '&'));
 - 
 -         // should never be reached
 -         throw new ActionException('login');
 -     }
 - }
 
 
  |