MediaWiki REL1_30
ApiLogout.php
Go to the documentation of this file.
1<?php
28
35class ApiLogout extends ApiBase {
36
37 public function execute() {
38 $session = MediaWiki\Session\SessionManager::getGlobalSession();
39
40 // Handle bot password logout specially
41 if ( $session->getProvider() instanceof BotPasswordSessionProvider ) {
42 $session->unpersist();
43 return;
44 }
45
46 // Make sure it's possible to log out
47 if ( !$session->canSetUser() ) {
48 $this->dieWithError(
49 [
50 'cannotlogoutnow-text',
51 $session->getProvider()->describe( $this->getErrorFormatter()->getLanguage() )
52 ],
53 'cannotlogout'
54 );
55 }
56
57 $user = $this->getUser();
58 $oldName = $user->getName();
59 $user->logout();
60
61 // Give extensions to do something after user logout
62 $injected_html = '';
63 Hooks::run( 'UserLogoutComplete', [ &$user, &$injected_html, $oldName ] );
64 }
65
66 public function mustBePosted() {
67 return true;
68 }
69
70 public function needsToken() {
71 return 'csrf';
72 }
73
74 protected function getWebUITokenSalt( array $params ) {
75 return 'logoutToken';
76 }
77
78 public function isReadMode() {
79 return false;
80 }
81
82 protected function getExamplesMessages() {
83 return [
84 'action=logout&token=123ABC'
85 => 'apihelp-logout-example-logout',
86 ];
87 }
88
89 public function getHelpUrls() {
90 return 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Logout';
91 }
92}
This abstract class implements many basic API functions, and is the base of all API classes.
Definition ApiBase.php:41
dieWithError( $msg, $code=null, $data=null, $httpCode=null)
Abort execution with an error.
Definition ApiBase.php:1855
API module to allow users to log out of the wiki.
Definition ApiLogout.php:35
getWebUITokenSalt(array $params)
Fetch the salt used in the Web UI corresponding to this module.
Definition ApiLogout.php:74
needsToken()
Returns the token type this module requires in order to execute.
Definition ApiLogout.php:70
getHelpUrls()
Return links to more detailed help pages about the module.
Definition ApiLogout.php:89
mustBePosted()
Indicates whether this module must be called with a POST request.
Definition ApiLogout.php:66
isReadMode()
Indicates whether this module requires read rights.
Definition ApiLogout.php:78
getExamplesMessages()
Returns usage examples for this module.
Definition ApiLogout.php:82
execute()
Evaluates the parameters, performs the requested query, and sets up the result.
Definition ApiLogout.php:37
getUser()
Get the User object.
$params