]> git.mjollnir.org Git - moodle.git/commitdiff
merged fix for MDL-10461, timemodied in role assignments not preserved
authortoyomoyo <toyomoyo>
Thu, 19 Jul 2007 03:37:53 +0000 (03:37 +0000)
committertoyomoyo <toyomoyo>
Thu, 19 Jul 2007 03:37:53 +0000 (03:37 +0000)
backup/restorelib.php
lib/accesslib.php

index fa926a23316c6bf8eaa835f5283896eda8a163cf..f25781d823e365a0e786c4d9a7d7acea3b33eb89 100644 (file)
             $newcontext = get_context_instance($contextlevel, $oldinstance->new_id);
             $assignment->contextid = $newcontext->id; // new context id
             // might already have same assignment           
-            role_assign($assignment->roleid, $assignment->userid, 0, $assignment->contextid, $assignment->timestart, $assignment->timeend, $assignment->hidden, $assignment->enrol);
+            role_assign($assignment->roleid, $assignment->userid, 0, $assignment->contextid, $assignment->timestart, $assignment->timeend, $assignment->hidden, $assignment->enrol, $assignment->timemodified);
             
         }  
     }
index c908d75e9eeffe2dade6894f8601ef03a44ca7a1..c59f403d7a19360cf3b71ed46a84b62fac3b3be8 100755 (executable)
@@ -2095,7 +2095,7 @@ function get_roles_with_capability($capability, $permission=NULL, $context='') {
  * @uses $USER
  * @return id - new id of the assigment
  */
-function role_assign($roleid, $userid, $groupid, $contextid, $timestart=0, $timeend=0, $hidden=0, $enrol='manual') {
+function role_assign($roleid, $userid, $groupid, $contextid, $timestart=0, $timeend=0, $hidden=0, $enrol='manual',$timemodified='') {
     global $USER, $CFG;
 
     debugging("Assign roleid $roleid userid $userid contextid $contextid", DEBUG_DEVELOPER);
@@ -2132,6 +2132,9 @@ function role_assign($roleid, $userid, $groupid, $contextid, $timestart=0, $time
         return false;
     }
 
+    if (!$timemodified) {
+        $timemodified = time();  
+    }
 
 /// Check for existing entry
     if ($userid) {
@@ -2153,7 +2156,7 @@ function role_assign($roleid, $userid, $groupid, $contextid, $timestart=0, $time
     /// by repeating queries with the same exact parameters in a 100 secs time window
         $newra->timestart = round($timestart, -2);
         $newra->timeend = $timeend;
-        $newra->timemodified = time();
+        $newra->timemodified = $timemodified;
         $newra->modifierid = empty($USER->id) ? 0 : $USER->id;
 
         $success = insert_record('role_assignments', $newra);
@@ -2167,7 +2170,7 @@ function role_assign($roleid, $userid, $groupid, $contextid, $timestart=0, $time
     /// by repeating queries with the same exact parameters in a 100 secs time window
         $newra->timestart = round($timestart, -2);
         $newra->timeend = $timeend;
-        $newra->timemodified = time();
+        $newra->timemodified = $timemodified;
         $newra->modifierid = empty($USER->id) ? 0 : $USER->id;
 
         $success = update_record('role_assignments', $newra);