* if we have an available language object.
*/
function loadDefaults() {
+ static $n=0;
+ $n++;
+ $fname = 'User::loadDefaults' . $n;
+ wfProfileIn( $fname );
+
global $wgContLang, $wgIP;
global $wgNamespacesToBeSearchedDefault;
$this->mGroups = array();
// Getting user defaults only if we have an available language
- if(isset($wgContLang)) { $this->loadDefaultFromLanguage(); }
+ if( isset( $wgContLang ) ) {
+ $this->loadDefaultFromLanguage();
+ }
- foreach ($wgNamespacesToBeSearchedDefault as $nsnum => $val) {
+ foreach( $wgNamespacesToBeSearchedDefault as $nsnum => $val ) {
$this->mOptions['searchNs'.$nsnum] = $val;
}
unset( $this->mSkin );
$this->mTouched = '0'; # Allow any pages to be cached
$this->setToken(); # Random
$this->mHash = false;
+ wfProfileOut( $fname );
}
/**
* a language object.
*/
function loadDefaultFromLanguage(){
- global $wgContLang;
- $defOpt = $wgContLang->getDefaultUserOptions() ;
- foreach ( $defOpt as $oname => $val ) {
- $this->mOptions[$oname] = $val;
- }
- /*
- default language setting
- */
- $this->setOption('variant', $wgContLang->getPreferredVariant());
- $this->setOption('language', $wgContLang->getPreferredVariant());
+ $fname = 'User::loadDefaultFromLanguage';
+ wfProfileIn( $fname );
+
+ /**
+ * Site defaults will override the global/language defaults
+ */
+ global $wgContLang, $wgDefaultUserOptions;
+ $defOpt = $wgDefaultUserOptions + $wgContLang->getDefaultUserOptions();
+
+ /**
+ * default language setting
+ */
+ $variant = $wgContLang->getPreferredVariant();
+ $defOpt['variant'] = $variant;
+ $defOpt['language'] = $variant;
+
+ $this->mOptions = $defOpt;
+
+ wfProfileOut();
}
/**
if(!$this->mId) {
/** Get rights */
$anong = Group::newFromId($wgAnonGroupId);
+ if (!$anong)
+ wfDebugDieBacktrace("Please update your database schema "
+ ."and populate initial group data from "
+ ."maintenance/archives patches");
$anong->loadFromDatabase();
$this->mRights = explode(',', $anong->getRights());
$this->mDataLoaded = true;
* @todo FIXME : need to check the old failback system [AV]
*/
function &getSkin() {
- global $IP, $wgUsePHPTal;
+ global $IP;
if ( ! isset( $this->mSkin ) ) {
+ $fname = 'User::getSkin';
+ wfProfileIn( $fname );
+
# get all skin names available
$skinNames = Skin::getSkinNames();
+
# get the user skin
$userSkin = $this->getOption( 'skin' );
if ( $userSkin == '' ) { $userSkin = 'standard'; }
$className = 'SkinStandard';
require_once( $IP.'/skins/Standard.php' );
}
- $this->mSkin = new $className;
+ $this->mSkin =& new $className;
+ wfProfileOut( $fname );
}
return $this->mSkin;
}
$this->mId = $dbw->insertId();
$dbw->insert( 'user_rights',
array(
- 'ur_user_id' => $this->mId,
- 'ur_user_rights' => implode( ',', $this->mRights )
+ 'ur_user' => $this->mId,
+ 'ur_rights' => implode( ',', $this->mRights )
), $fname
);
*/
function checkPassword( $password ) {
$this->loadFromDatabase();
+
+ global $wgAuth;
+ if( $wgAuth->authenticate( $this->getName(), $password ) ) {
+ return true;
+ } elseif( $wgAuth->strict() ) {
+ /* Auth plugin doesn't allow local authentication */
+ return false;
+ }
+
$ep = $this->encryptPassword( $password );
if ( 0 == strcmp( $ep, $this->mPassword ) ) {
return true;