jenkins-bot has submitted this change and it was merged. Change subject: Autologin for m. domains ......................................................................
Autologin for m. domains Have the central login wiki redirect to the mobile version of a wiki, if the original autologin started on a mobile domain. Depends on Ia90a587b0579ff2a65c9477f083692aab3945577 Bug: T100413 Change-Id: Ie1c373a1f039fb1ab9866543288bcfaf87c51ab4 --- M includes/CentralAuthHooks.php M includes/specials/SpecialCentralAutoLogin.php 2 files changed, 55 insertions(+), 10 deletions(-) Approvals: MaxSem: Looks good to me, but someone else must approve Jdlrobson: Looks good to me, approved jenkins-bot: Verified diff --git a/includes/CentralAuthHooks.php b/includes/CentralAuthHooks.php index 692dd8c..42b239a 100644 --- a/includes/CentralAuthHooks.php +++ b/includes/CentralAuthHooks.php @@ -596,10 +596,17 @@ foreach ( $wgCentralAuthAutoLoginWikis as $alt => $wikiID ) { $wiki = WikiMap::getWiki( $wikiID ); // Use WikiReference::getFullUrl(), returns a protocol-relative URL if needed - $url = wfAppendQuery( $wiki->getFullUrl( 'Special:CentralAutoLogin/start' ), array( + $params = array( 'type' => 'icon', 'from' => wfWikiID(), - ) ); + ); + if ( self::isMobileDomain() ) { + $params['mobile'] = 1; + } + $url = wfAppendQuery( + $wiki->getFullUrl( 'Special:CentralAutoLogin/start' ), + $params + ); $inject_html .= Xml::element( 'img', array( 'src' => $url, @@ -728,6 +735,11 @@ } return true; + } + + private static function isMobileDomain() { + return class_exists( 'MobileContext' ) + && MobileContext::singleton()->usingMobileDomain(); } /** @@ -1315,10 +1327,14 @@ $wgCentralAuthLoginWiki, 'Special:CentralAutoLogin/checkLoggedIn' ); if ( $url !== false ) { - $vars['wgCentralAuthCheckLoggedInURL'] = wfAppendQuery( $url, array( + $params = array( 'type' => 'script', 'wikiid' => wfWikiID(), - ) ); + ); + if ( self::isMobileDomain() ) { + $params['mobile'] = 1; + } + $vars['wgCentralAuthCheckLoggedInURL'] = wfAppendQuery( $url, $params ); } } } @@ -1423,9 +1439,16 @@ // For non-JS clients. Use WikiMap to avoid localization of the // 'Special' namespace, see bug 54195. $wiki = WikiMap::getWiki( wfWikiID() ); - $url = wfAppendQuery( $wiki->getFullUrl( 'Special:CentralAutoLogin/start' ), array( + $params = array( 'type' => '1x1', - ) ); + ); + if ( self::isMobileDomain() ) { + $params['mobile'] = 1; + } + $url = wfAppendQuery( + $wiki->getFullUrl( 'Special:CentralAutoLogin/start' ), + $params + ); $out->addHTML( '<noscript>' . Xml::element( 'img', array( 'src' => $url, @@ -1480,10 +1503,24 @@ foreach ( $wgCentralAuthAutoLoginWikis as $wiki ) { $wiki = WikiMap::getWiki( $wiki ); // Use WikiReference::getFullUrl(), returns a protocol-relative URL if needed - $url = wfAppendQuery( $wiki->getFullUrl( 'Special:CentralAutoLogin/start' ), array( + $params = array( 'type' => '1x1', 'from' => wfWikiID(), - ) ); + ); + $url = wfAppendQuery( + $wiki->getFullUrl( 'Special:CentralAutoLogin/start' ), + $params + ); + if ( self::isMobileDomain() ) { + $params['mobile'] = 1; + // Do autologin on the mobile domain for each wiki + $url = MobileContext::singleton()->getMobileUrl( + wfAppendQuery( + $wiki->getFullUrl( 'Special:CentralAutoLogin/start' ), + $params + ) + ); + } $html .= Xml::element( 'img', array( 'src' => $url, diff --git a/includes/specials/SpecialCentralAutoLogin.php b/includes/specials/SpecialCentralAutoLogin.php index 3d25bc5..99aefcd 100644 --- a/includes/specials/SpecialCentralAutoLogin.php +++ b/includes/specials/SpecialCentralAutoLogin.php @@ -79,9 +79,9 @@ 'return', 'returnto', 'returntoquery', - 'proto' + 'proto', + 'mobile' ); - switch ( strval( $par ) ) { case 'P3P': // Explain the bogus P3P header $this->setHeaders(); @@ -489,6 +489,14 @@ private function do302Redirect( $target, $state, $params ) { $url = WikiMap::getForeignURL( $target, "Special:CentralAutoLogin/$state" ); + if ( wfWikiID() == $this->loginWiki + && class_exists( 'MobileContext' ) + && isset( $params['mobile'] ) + && $params['mobile'] + ) { + $url = MobileContext::singleton()->getMobileUrl( $url ); + } + if ( $url === false ) { $this->doFinalOutput( false, 'Invalid target wiki' ); } else { -- To view, visit https://gerrit.wikimedia.org/r/219275 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ie1c373a1f039fb1ab9866543288bcfaf87c51ab4 Gerrit-PatchSet: 5 Gerrit-Project: mediawiki/extensions/CentralAuth Gerrit-Branch: master Gerrit-Owner: CSteipp <cste...@wikimedia.org> Gerrit-Reviewer: Anomie <bjor...@wikimedia.org> Gerrit-Reviewer: CSteipp <cste...@wikimedia.org> Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org> Gerrit-Reviewer: Kaldari <rkald...@wikimedia.org> Gerrit-Reviewer: Legoktm <legoktm.wikipe...@gmail.com> Gerrit-Reviewer: MaxSem <maxsem.w...@gmail.com> Gerrit-Reviewer: Phuedx <g...@samsmith.io> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits