MDL-41176 do not set description and pw fields in $USER when editing own profile
authorPetr Škoda <commits@skodak.org>
Mon, 23 Sep 2013 19:15:59 +0000 (21:15 +0200)
committerPetr Škoda <commits@skodak.org>
Fri, 27 Sep 2013 08:33:48 +0000 (10:33 +0200)
user/edit.php
user/editadvanced.php

index ab1478a..7c479ef 100644 (file)
@@ -256,12 +256,16 @@ if ($usernew = $userform->get_data()) {
         }
     }
 
-    // reload from db
-    $usernew = $DB->get_record('user', array('id'=>$user->id));
+    // Reload from db, we need new full name on this page if we do not redirect.
+    $user = $DB->get_record('user', array('id'=>$user->id), '*', MUST_EXIST);
 
     if ($USER->id == $user->id) {
         // Override old $USER session variable if needed
-        foreach ((array)$usernew as $variable => $value) {
+        foreach ((array)$user as $variable => $value) {
+            if ($variable === 'description' or $variable === 'password') {
+                // These are not set for security nad perf reasons.
+                continue;
+            }
             $USER->$variable = $value;
         }
         // preload custom fields
index 924ebb1..122a4cc 100644 (file)
@@ -240,6 +240,10 @@ if ($usernew = $userform->get_data()) {
     if ($user->id == $USER->id) {
         // Override old $USER session variable
         foreach ((array)$usernew as $variable => $value) {
+            if ($variable === 'description' or $variable === 'password') {
+                // These are not set for security nad perf reasons.
+                continue;
+            }
             $USER->$variable = $value;
         }
         // preload custom fields