X-Git-Url: http://git.cyclocoop.org/%7B%24admin_url%7Dmes_infos.php?a=blobdiff_plain;f=includes%2Fspecialpage%2FLoginSignupSpecialPage.php;h=3ed131ec86e17c5abe350d5b8c4179b774a49fb3;hb=84b6d5c2e5be3b2fcd1808a7bb82f24a494e3426;hp=5c048a20785cb37692272207d8730fdf4d8436d4;hpb=82524dc4da650c8017767a2648ed92dde98b8cae;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specialpage/LoginSignupSpecialPage.php b/includes/specialpage/LoginSignupSpecialPage.php index 5c048a2078..3ed131ec86 100644 --- a/includes/specialpage/LoginSignupSpecialPage.php +++ b/includes/specialpage/LoginSignupSpecialPage.php @@ -26,7 +26,9 @@ use MediaWiki\Auth\AuthenticationResponse; use MediaWiki\Auth\AuthManager; use MediaWiki\Auth\Throttler; use MediaWiki\Logger\LoggerFactory; +use MediaWiki\MediaWikiServices; use MediaWiki\Session\SessionManager; +use Wikimedia\ScopedCallback; /** * Holds shared logic for login and account creation pages. @@ -96,7 +98,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage { /** * Load basic request parameters for this Special page. - * @param $subPage + * @param string $subPage */ private function loadRequestParameters( $subPage ) { if ( $this->mLoadedRequest ) { @@ -212,6 +214,15 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage { * @param string|null $subPage */ public function execute( $subPage ) { + if ( $this->mPosted ) { + $time = microtime( true ); + $profilingScope = new ScopedCallback( function () use ( $time ) { + $time = microtime( true ) - $time; + $statsd = MediaWikiServices::getInstance()->getStatsdDataFactory(); + $statsd->timing( "timing.login.ui.{$this->authAction}", $time * 1000 ); + } ); + } + $authManager = AuthManager::singleton(); $session = SessionManager::getGlobalSession(); @@ -761,7 +772,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage { if ( $this->showCreateAccountLink() ) { # Pass any language selection on to the mode switch link if ( $this->mLanguage ) { - $linkq .= '&uselang=' . $this->mLanguage; + $linkq .= '&uselang=' . urlencode( $this->mLanguage ); } // Supply URL, login template creates the button. $template->set( 'createOrLoginHref', $titleObj->getLocalURL( $linkq ) ); @@ -1145,11 +1156,11 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage { // Don't show a "create account" link if the user can't. if ( $this->showCreateAccountLink() ) { // link to the other action - $linkTitle = $this->getTitleFor( $this->isSignup() ? 'Userlogin' :'CreateAccount' ); + $linkTitle = $this->getTitleFor( $this->isSignup() ? 'Userlogin' : 'CreateAccount' ); $linkq = $this->getReturnToQueryStringFragment(); // Pass any language selection on to the mode switch link if ( $this->mLanguage ) { - $linkq .= '&uselang=' . $this->mLanguage; + $linkq .= '&uselang=' . urlencode( $this->mLanguage ); } $loggedIn = $this->getUser()->isLoggedIn(); @@ -1188,7 +1199,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage { /** * Adds fields provided via the deprecated UserLoginForm / UserCreateForm hooks - * @param $fieldDefinitions array + * @param array $fieldDefinitions * @param FakeAuthTemplate $template * @return array */ @@ -1328,7 +1339,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage { } /** - * @param array $formDescriptor + * @param array &$formDescriptor */ protected function postProcessFormDescriptor( &$formDescriptor, $requests ) { // Pre-fill username (if not creating an account, T46775).