diff options
Diffstat (limited to 'includes/Setup.php')
-rw-r--r-- | includes/Setup.php | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/includes/Setup.php b/includes/Setup.php index 1a580c163d8b..1904c3af3055 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -152,7 +152,7 @@ wfProfileIn( $fname.'-language1' ); require_once( "$IP/languages/Language.php" ); -function setupLangObj(&$langclass) { +function setupLangObj($langclass) { global $IP; if( ! class_exists( $langclass ) ) { @@ -206,7 +206,11 @@ if( $wgCommandLineMode ) { # Prevent loading User settings from the DB. $wgUser->setLoaded( true ); } else { - $wgUser = User::loadFromSession(); + $wgUser = null; + wfRunHooks('AutoAuthenticate',array(&$wgUser)); + if ($wgUser === null) { + $wgUser = User::loadFromSession(); + } } wfProfileOut( $fname.'-User' ); @@ -217,7 +221,7 @@ $wgLanguageCode = $wgRequest->getText('uselang', ''); if ($wgLanguageCode == '') $wgLanguageCode = $wgUser->getOption('language'); # Validate $wgLanguageCode, which will soon be sent to an eval() -if( empty( $wgLanguageCode ) || preg_match( '/^[^a-z-]*$/', $wgLanguageCode ) ) { +if( empty( $wgLanguageCode ) || !preg_match( '/^[a-z]+(-[a-z]+)?$/', $wgLanguageCode ) ) { $wgLanguageCode = $wgContLanguageCode; } |