MediaWiki  master
ApiLogout.php
Go to the documentation of this file.
1 <?php
24 
31 class ApiLogout extends ApiBase {
32 
33  public function execute() {
35 
36  // Handle bot password logout specially
37  if ( $session->getProvider() instanceof BotPasswordSessionProvider ) {
38  $session->unpersist();
39  return;
40  }
41 
42  // Make sure it's possible to log out
43  if ( !$session->canSetUser() ) {
44  $this->dieWithError(
45  [
46  'cannotlogoutnow-text',
47  $session->getProvider()->describe( $this->getErrorFormatter()->getLanguage() )
48  ],
49  'cannotlogout'
50  );
51  }
52 
53  $user = $this->getUser();
54  $oldName = $user->getName();
55  $user->logout();
56 
57  // Give extensions to do something after user logout
58  $injected_html = '';
59  Hooks::run( 'UserLogoutComplete', [ &$user, &$injected_html, $oldName ] );
60  }
61 
62  public function mustBePosted() {
63  return true;
64  }
65 
66  public function needsToken() {
67  return 'csrf';
68  }
69 
70  protected function getWebUITokenSalt( array $params ) {
71  return 'logoutToken';
72  }
73 
74  public function isReadMode() {
75  return false;
76  }
77 
78  protected function getExamplesMessages() {
79  return [
80  'action=logout&token=123ABC'
81  => 'apihelp-logout-example-logout',
82  ];
83  }
84 
85  public function getHelpUrls() {
86  return 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Logout';
87  }
88 }
getErrorFormatter()
Get the error formatter.
Definition: ApiBase.php:654
getHelpUrls()
Definition: ApiLogout.php:85
getExamplesMessages()
Definition: ApiLogout.php:78
API module to allow users to log out of the wiki.
Definition: ApiLogout.php:31
dieWithError( $msg, $code=null, $data=null, $httpCode=null)
Abort execution with an error.
Definition: ApiBase.php:2006
mustBePosted()
Definition: ApiLogout.php:62
getWebUITokenSalt(array $params)
Definition: ApiLogout.php:70
isReadMode()
Definition: ApiLogout.php:74
static getGlobalSession()
Get the "global" session.
needsToken()
Definition: ApiLogout.php:66
This abstract class implements many basic API functions, and is the base of all API classes...
Definition: ApiBase.php:42
static run( $event, array $args=[], $deprecatedVersion=null)
Call hook functions defined in Hooks::register and $wgHooks.
Definition: Hooks.php:200