Skip to content

Commit

Permalink
Reworked a bit to prevent non-target user role assignments to be expo…
Browse files Browse the repository at this point in the history
…rted. MDL-13115 ; merged from 19_STABLE
  • Loading branch information
stronk7 committed Jan 24, 2008
1 parent 0bf0e32 commit a03320f
Showing 1 changed file with 21 additions and 17 deletions.
38 changes: 21 additions & 17 deletions backup/backuplib.php
Expand Up @@ -721,7 +721,7 @@ function backup_course_start ($bf,$preferences) {
/// write local course overrides here?
write_role_overrides_xml($bf, $context, 3);
/// write role_assign code here
write_role_assignments_xml($bf, $context, 3, $preferences);
write_role_assignments_xml($bf, $preferences, $context, 3);
//Print header end
fwrite ($bf,end_tag("HEADER",2,true));
} else {
Expand Down Expand Up @@ -990,7 +990,7 @@ function backup_course_blocks ($bf,$preferences) {
$context = get_context_instance(CONTEXT_BLOCK, $instance->id);
write_role_overrides_xml($bf, $context, 4);
/// write role_assign code here
write_role_assignments_xml($bf, $context, 4, $preferences);
write_role_assignments_xml($bf, $preferences, $context, 4);
//End Block
fwrite ($bf,end_tag('BLOCK',3,true));
}
Expand Down Expand Up @@ -1128,7 +1128,7 @@ function backup_course_modules ($bf,$preferences,$section) {
// get all the role_capabilities overrides in this mod
write_role_overrides_xml($bf, $context, 6);
/// write role_assign code here
write_role_assignments_xml($bf, $context, 6, $preferences);
write_role_assignments_xml($bf, $preferences, $context, 6);
/// write role_assign code here

fwrite ($bf,end_tag("MOD",5,true));
Expand Down Expand Up @@ -1288,7 +1288,7 @@ function backup_user_info ($bf,$preferences) {

write_role_overrides_xml($bf, $context, 4);
/// write role_assign code here
write_role_assignments_xml($bf, $context, 4, $preferences);
write_role_assignments_xml($bf, $preferences, $context, 4);
//End User tag
fwrite ($bf,end_tag("USER",3,true));
//Do some output
Expand Down Expand Up @@ -2670,12 +2670,13 @@ function write_role_overrides_xml($bf, $context, $startlevel) {
}

/* function to print xml for assignment */
function write_role_assignments_xml($bf, $context, $startlevel, $preferences) {
function write_role_assignments_xml($bf, $preferences, $context, $startlevel) {
/// write role_assign code here
fwrite ($bf, start_tag("ROLES_ASSIGNMENTS", $startlevel, true));

if ($roles = get_roles_with_assignment_on_context($context)) {
foreach ($roles as $role) {
/// Skip non-selected roles
if (!isset($preferences->backuproleassignments[$role->id])) {
continue;
}
Expand All @@ -2686,19 +2687,22 @@ function write_role_assignments_xml($bf, $context, $startlevel, $preferences) {
fwrite ($bf, start_tag("ASSIGNMENTS", $startlevel+2, true));
if ($assignments = get_users_from_role_on_context($role, $context)) {
foreach ($assignments as $assignment) {
fwrite ($bf, start_tag("ASSIGNMENT", $startlevel+3, true));
fwrite ($bf, full_tag("USERID", $startlevel+4, false, $assignment->userid));
fwrite ($bf, full_tag("HIDDEN", $startlevel+4, false, $assignment->hidden));
fwrite ($bf, full_tag("TIMESTART", $startlevel+4, false, $assignment->timestart));
fwrite ($bf, full_tag("TIMEEND", $startlevel+4, false, $assignment->timeend));
fwrite ($bf, full_tag("TIMEMODIFIED", $startlevel+4, false, $assignment->timemodified));
if (!isset($assignment->modifierid)) {
$assignment->modifierid = 0;
/// Role assignments are only sent to backup if the user is one target user
if (backup_getid($preferences->backup_unique_code, 'user', $assignment->userid)) {
fwrite ($bf, start_tag("ASSIGNMENT", $startlevel+3, true));
fwrite ($bf, full_tag("USERID", $startlevel+4, false, $assignment->userid));
fwrite ($bf, full_tag("HIDDEN", $startlevel+4, false, $assignment->hidden));
fwrite ($bf, full_tag("TIMESTART", $startlevel+4, false, $assignment->timestart));
fwrite ($bf, full_tag("TIMEEND", $startlevel+4, false, $assignment->timeend));
fwrite ($bf, full_tag("TIMEMODIFIED", $startlevel+4, false, $assignment->timemodified));
if (!isset($assignment->modifierid)) {
$assignment->modifierid = 0;
}
fwrite ($bf, full_tag("MODIFIERID", $startlevel+4, false, $assignment->modifierid));
fwrite ($bf, full_tag("ENROL", $startlevel+4, false, $assignment->enrol));
fwrite ($bf, full_tag("SORTORDER", $startlevel+4, false, $assignment->sortorder));
fwrite ($bf, end_tag("ASSIGNMENT", $startlevel+3, true));
}
fwrite ($bf, full_tag("MODIFIERID", $startlevel+4, false, $assignment->modifierid));
fwrite ($bf, full_tag("ENROL", $startlevel+4, false, $assignment->enrol));
fwrite ($bf, full_tag("SORTORDER", $startlevel+4, false, $assignment->sortorder));
fwrite ($bf, end_tag("ASSIGNMENT", $startlevel+3, true));
}
}
fwrite ($bf, end_tag("ASSIGNMENTS", $startlevel+2, true));
Expand Down

0 comments on commit a03320f

Please sign in to comment.