[
'returnto' => $this->mReturnTo,
'returntoquery' => $this->mReturnToQuery,
- 'uselang' => $this->mLanguage,
+ 'uselang' => $this->mLanguage ?: null,
'fromhttp' => $wgSecureLogin && $this->mFromHTTP ? '1' : null,
]
);
}
// warning header for non-standard workflows (e.g. security reauthentication)
- if ( !$this->isSignup() && $this->getUser()->isLoggedIn() ) {
+ if (
+ !$this->isSignup() &&
+ $this->getUser()->isLoggedIn() &&
+ $this->authAction !== AuthManager::ACTION_LOGIN_CONTINUE
+ ) {
$reauthMessage = $this->securityLevel ? 'userlogin-reauth' : 'userlogin-loggedin';
$submitStatus->warning( $reauthMessage, $this->getUser()->getName() );
}
$form = HTMLForm::factory( 'vform', $formDescriptor, $context );
$form->addHiddenField( 'authAction', $this->authAction );
- if ( $wgLoginLanguageSelector ) {
+ if ( $wgLoginLanguageSelector && $this->mLanguage ) {
$form->addHiddenField( 'uselang', $this->mLanguage );
}
$form->addHiddenField( 'force', $this->securityLevel );
// make a best effort to get the value of fields which used to be fixed in the old login
// template but now might or might not exist depending on what providers are used
$request = $this->getRequest();
- $data = (object) [
+ $data = (object)[
'mUsername' => $request->getText( 'wpName' ),
'mPassword' => $request->getText( 'wpPassword' ),
'mRetype' => $request->getText( 'wpRetype' ),
$wgAuth->modifyUITemplate( $template, $action );
$oldTemplate = $template;
- $hookName = $this->isSignup() ? 'UserCreateForm' : 'UserLoginForm';
- Hooks::run( $hookName, [ &$template ] );
- if ( $oldTemplate !== $template ) {
- wfDeprecated( "reference in $hookName hook", '1.27' );
+
+ // Both Hooks::run are explicit here to make findHooks.php happy
+ if ( $this->isSignup() ) {
+ Hooks::run( 'UserCreateForm', [ &$template ] );
+ if ( $oldTemplate !== $template ) {
+ wfDeprecated( "reference in UserCreateForm hook", '1.27' );
+ }
+ } else {
+ Hooks::run( 'UserLoginForm', [ &$template ] );
+ if ( $oldTemplate !== $template ) {
+ wfDeprecated( "reference in UserLoginForm hook", '1.27' );
+ }
}
return $template;
-
}
public function onAuthChangeFormFields(
}
if ( !$this->isSignup() && $this->showExtraInformation() ) {
$passwordReset = new PasswordReset( $this->getConfig(), AuthManager::singleton() );
- if ( $passwordReset->isAllowed( $this->getUser() ) ) {
+ if ( $passwordReset->isAllowed( $this->getUser() )->isGood() ) {
$fieldDefinitions['passwordReset'] = [
'type' => 'info',
'raw' => true,