[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Implements Special:Userlogout 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License along 16 * with this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 * http://www.gnu.org/copyleft/gpl.html 19 * 20 * @file 21 * @ingroup SpecialPage 22 */ 23 24 /** 25 * Implements Special:Userlogout 26 * 27 * @ingroup SpecialPage 28 */ 29 class SpecialUserlogout extends UnlistedSpecialPage { 30 function __construct() { 31 parent::__construct( 'Userlogout' ); 32 } 33 34 function execute( $par ) { 35 /** 36 * Some satellite ISPs use broken precaching schemes that log people out straight after 37 * they're logged in (bug 17790). Luckily, there's a way to detect such requests. 38 */ 39 if ( isset( $_SERVER['REQUEST_URI'] ) && strpos( $_SERVER['REQUEST_URI'], '&' ) !== false ) { 40 wfDebug( "Special:Userlogout request {$_SERVER['REQUEST_URI']} looks suspicious, denying.\n" ); 41 throw new HttpError( 400, $this->msg( 'suspicious-userlogout' ), $this->msg( 'loginerror' ) ); 42 } 43 44 $this->setHeaders(); 45 $this->outputHeader(); 46 47 $user = $this->getUser(); 48 $oldName = $user->getName(); 49 $user->logout(); 50 51 $loginURL = SpecialPage::getTitleFor( 'Userlogin' )->getFullURL( 52 $this->getRequest()->getValues( 'returnto', 'returntoquery' ) ); 53 54 $out = $this->getOutput(); 55 $out->addWikiMsg( 'logouttext', $loginURL ); 56 57 // Hook. 58 $injected_html = ''; 59 wfRunHooks( 'UserLogoutComplete', array( &$user, &$injected_html, $oldName ) ); 60 $out->addHTML( $injected_html ); 61 62 $out->returnToMain(); 63 } 64 65 protected function getGroupName() { 66 return 'login'; 67 } 68 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |