From: toyomoyo Date: Thu, 19 Jul 2007 03:37:53 +0000 (+0000) Subject: merged fix for MDL-10461, timemodied in role assignments not preserved X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=69b0088cd9e2656409b3465e5954b9ef6f98e7ba;p=moodle.git merged fix for MDL-10461, timemodied in role assignments not preserved --- diff --git a/backup/restorelib.php b/backup/restorelib.php index fa926a2331..f25781d823 100644 --- a/backup/restorelib.php +++ b/backup/restorelib.php @@ -6868,7 +6868,7 @@ $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); } } diff --git a/lib/accesslib.php b/lib/accesslib.php index c908d75e9e..c59f403d7a 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -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);