From 070e2616472a06f8e2bbe0d51f6afbae808f12d5 Mon Sep 17 00:00:00 2001 From: defacer Date: Wed, 1 Dec 2004 21:47:02 +0000 Subject: [PATCH] Fixed set_user_preference to make changes immediately available ($user was lowercased) Updated all user preferences functions to behave well even if $USER or $USER->id is not defined --- lib/moodlelib.php | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 6f315a0ad0..d56a09e623 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -301,6 +301,10 @@ function reload_user_preferences() { global $USER; + if(empty($USER) || empty($USER->id)) { + return false; + } + unset($USER->preference); if ($preferences = get_records('user_preferences', 'userid', $USER->id)) { @@ -329,7 +333,12 @@ function set_user_preference($name, $value, $userid=NULL) { global $USER; if (empty($userid)){ - $userid = $USER->id; + if(!empty($USER) && !empty($USER->id)) { + $userid = $USER->id; + } + else { + return false; + } } if (empty($name)) { @@ -338,7 +347,9 @@ function set_user_preference($name, $value, $userid=NULL) { if ($preference = get_record('user_preferences', 'userid', $userid, 'name', $name)) { if (set_field('user_preferences', 'value', $value, 'id', $preference->id)) { - $user->preference[$name] = $value; + if(!empty($USER)) { + $USER->preference[$name] = $value; + } return true; } else { return false; @@ -349,7 +360,9 @@ function set_user_preference($name, $value, $userid=NULL) { $preference->name = $name; $preference->value = (string)$value; if (insert_record('user_preferences', $preference)) { - $user->preference[$name] = $value; + if(!empty($USER)) { + $USER->preference[$name] = $value; + } return true; } else { return false; @@ -370,7 +383,12 @@ function unset_user_preference($name, $userid=NULL) { global $USER; if (empty($userid)){ - $userid = $USER->id; + if(!empty($USER) && !empty($USER->id)) { + $userid = $USER->id; + } + else { + return false; + } } return delete_records('user_preferences', 'userid', $userid, 'name', $name); @@ -392,14 +410,18 @@ function set_user_preferences($prefarray, $userid=NULL) { } if (empty($userid)){ - $userid = $USER->id; + if(!empty($USER) && !empty($USER->id)) { + $userid = $USER->id; + } + else { + return false; + } } $return = true; foreach ($prefarray as $name => $value) { - // The order is important; if the test for return is done first, - // then if one function call fails all the remaining ones will - // be "optimized away" + // The order is important; if the test for return is done first, then + // if one function call fails all the remaining ones will be "optimized away" $return = set_user_preference($name, $value, $userid) and $return; } return $return; -- 2.39.5