Don't show warning header for non-standard workflows on login-continue
authorFlorian Schmidt <florian.schmidt.stargatewissen@gmail.com>
Wed, 21 Sep 2016 20:45:32 +0000 (22:45 +0200)
committerFlorianschmidtwelzow <florian.schmidt.stargatewissen@gmail.com>
Sat, 29 Oct 2016 15:34:33 +0000 (15:34 +0000)
When a user needs/wants to login again (reauthentication or user account switch),
the Login special page shows a header to explain what happened ("already logged
in" or "need to re-authenticate"). For now, the form also displays this header
for a continued login workflow (e.g. when the user needs to enter secondary auth-
entication data, like a one time password). This is misleading, as the user already
knows what and why he has to login (again). Other error/warning messages are maybe
not as visible as they should be.

This change omits the header message for the login-continue auth action.

Bug: T146317
Change-Id: I2115bbe7965e8d0326f71872a4d33767dd0f956b

includes/specialpage/LoginSignupSpecialPage.php

index 275e121..aa5bb4e 100644 (file)
@@ -508,7 +508,11 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                }
 
                // 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() );
                }