aboutsummaryrefslogtreecommitdiffstats
path: root/includes/Setup.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/Setup.php')
-rw-r--r--includes/Setup.php10
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;
}