parent::__construct( 'Userlogout' );
}
+ public function doesWrites() {
+ return true;
+ }
+
function execute( $par ) {
/**
* Some satellite ISPs use broken precaching schemes that log people out straight after
$this->setHeaders();
$this->outputHeader();
+ // Make sure it's possible to log out
+ $session = MediaWiki\Session\SessionManager::getGlobalSession();
+ if ( !$session->canSetUser() ) {
+ throw new ErrorPageError(
+ 'cannotlogoutnow-title',
+ 'cannotlogoutnow-text',
+ array(
+ $session->getProvider()->describe( RequestContext::getMain()->getLanguage() )
+ )
+ );
+ }
+
$user = $this->getUser();
$oldName = $user->getName();
$user->logout();
// Hook.
$injected_html = '';
- wfRunHooks( 'UserLogoutComplete', array( &$user, &$injected_html, $oldName ) );
+ Hooks::run( 'UserLogoutComplete', array( &$user, &$injected_html, $oldName ) );
$out->addHTML( $injected_html );
$out->returnToMain();