summaryrefslogtreecommitdiffstats
path: root/lib/class/preference.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/class/preference.class.php')
-rw-r--r--lib/class/preference.class.php13
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