diff options
Diffstat (limited to 'lib/class/preference.class.php')
-rw-r--r-- | lib/class/preference.class.php | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/class/preference.class.php b/lib/class/preference.class.php index 6f1db363..338f14b7 100644 --- a/lib/class/preference.class.php +++ b/lib/class/preference.class.php @@ -332,9 +332,9 @@ class Preference { * load_from_session * This loads the preferences from the session rather then creating a connection to the database */ - public static function load_from_session() { + public static function load_from_session($uid=-1) { - if (is_array($_SESSION['userdata']['preferences'])) { + if (is_array($_SESSION['userdata']['preferences']) AND $_SESSION['userdata']['uid'] == $uid) { Config::set_by_array($_SESSION['userdata']['preferences'],1); return true; } @@ -391,13 +391,13 @@ class Preference { */ public static function init() { + $user_id = $GLOBALS['user']->id ? Dba::escape($GLOBALS['user']->id) : '-1'; + // First go ahead and try to load it from the preferences - if (self::load_from_session()) { + if (self::load_from_session($user_id)) { return true; } - - $user_id = $GLOBALS['user']->id ? Dba::escape($GLOBALS['user']->id) : '-1'; - + /* Get Global Preferences */ $sql = "SELECT `preference`.`name`,`user_preference`.`value`,`syspref`.`value` AS `system_value` FROM `preference` " . "LEFT JOIN `user_preference` `syspref` ON `syspref`.`preference`=`preference`.`id` AND `syspref`.`user`='-1' AND `preference`.`catagory`='system' " . @@ -423,6 +423,7 @@ class Preference { Config::set_by_array($results,1); $_SESSION['userdata']['preferences'] = $results; + $_SESSION['userdata']['uid'] = $user_id; } // init |