[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/inc/Action/ -> Logout.php (source)

   1  <?php
   2  
   3  namespace dokuwiki\Action;
   4  
   5  use dokuwiki\Action\Exception\ActionDisabledException;
   6  use dokuwiki\Action\Exception\ActionException;
   7  
   8  /**
   9   * Class Logout
  10   *
  11   * Log out a user
  12   *
  13   * @package dokuwiki\Action
  14   */
  15  class Logout extends AbstractUserAction {
  16  
  17      /** @inheritdoc */
  18      public function minimumPermission() {
  19          return AUTH_NONE;
  20      }
  21  
  22      /** @inheritdoc */
  23      public function checkPreconditions() {
  24          parent::checkPreconditions();
  25  
  26          /** @var \dokuwiki\Extension\AuthPlugin $auth */
  27          global $auth;
  28          if(!$auth->canDo('logout')) throw new ActionDisabledException();
  29      }
  30  
  31      /** @inheritdoc */
  32      public function preProcess() {
  33          global $ID;
  34          global $INPUT;
  35  
  36          // when logging out during an edit session, unlock the page
  37          $lockedby = checklock($ID);
  38          if($lockedby == $INPUT->server->str('REMOTE_USER')) {
  39              unlock($ID);
  40          }
  41  
  42          // do the logout stuff and redirect to login
  43          auth_logoff();
  44          send_redirect(wl($ID, array('do' => 'login'), true, '&'));
  45  
  46          // should never be reached
  47          throw new ActionException('login');
  48      }
  49  
  50  }