55 if ( !static::$validErrorMessagesCache ) {
56 static::$validErrorMessagesCache = self::$validErrorMessages;
57 (
new HookRunner( MediaWikiServices::getInstance()->getHookContainer() ) )
58 ->onLoginFormValidErrorMessages( static::$validErrorMessagesCache );
61 return static::$validErrorMessagesCache;
87 $type, $returnTo =
'', $returnToQuery =
'', $stickHTTPS =
false, $returnToAnchor =
''
89 $config = $this->getConfig();
90 if ( $type !==
'error' && $config->get( MainConfigNames::RedirectOnLogin ) !==
null ) {
91 $returnTo = $config->get( MainConfigNames::RedirectOnLogin );
93 } elseif ( is_string( $returnToQuery ) ) {
96 if ( $returnToAnchor !==
'' && $returnToAnchor[0] !==
'#' ) {
101 $oldReturnTo = $returnTo;
102 $oldReturnToQuery = $returnToQuery;
103 $this->getHookRunner()->onPostLoginRedirect( $returnTo, $returnToQuery, $type );
104 if ( $returnTo !== $oldReturnTo || $returnToQuery !== $oldReturnToQuery ) {
107 $returnToAnchor =
'';
110 $returnToTitle = Title::newFromText( $returnTo ) ?: Title::newMainPage();
112 if ( $config->get( MainConfigNames::ForceHTTPS )
113 || ( $config->get( MainConfigNames::SecureLogin ) && $stickHTTPS )
115 $options = [
'https' ];
117 } elseif ( $config->get( MainConfigNames::SecureLogin ) && !$stickHTTPS ) {
118 $options = [
'http' ];
125 if ( $type ===
'successredirect' ) {
126 $redirectUrl = $returnToTitle->getFullUrlForRedirect( $returnToQuery, $proto )
128 $this->getOutput()->redirect( $redirectUrl );
130 $this->getOutput()->addReturnTo( $returnToTitle, $returnToQuery,
null, $options );