Merge branch 'w12_MDL-32045_m23_resetnorole' of git://github.com/skodak/moodle

This commit is contained in:
Sam Hemelryk
2012-03-20 12:06:07 +13:00
2 changed files with 21 additions and 6 deletions
+3
View File
@@ -27,6 +27,9 @@ class course_reset_form extends moodleform {
$mform->addElement('header', 'rolesheader', get_string('roles'));
$roles = get_assignable_roles(get_context_instance(CONTEXT_COURSE, $COURSE->id));
$roles[0] = get_string('noroles', 'role');
$roles = array_reverse($roles, true);
$mform->addElement('select', 'unenrol_users', get_string('unenrolroleusers', 'enrol'), $roles, array('multiple' => 'multiple'));
$mform->addElement('checkbox', 'reset_roles_overrides', get_string('deletecourseoverrides', 'role'));
$mform->setAdvanced('reset_roles_overrides');
+18 -6
View File
@@ -4775,12 +4775,24 @@ function reset_course_userdata($data) {
}
foreach($data->unenrol_users as $withroleid) {
$sql = "SELECT ue.*
FROM {user_enrolments} ue
JOIN {enrol} e ON (e.id = ue.enrolid AND e.courseid = :courseid)
JOIN {context} c ON (c.contextlevel = :courselevel AND c.instanceid = e.courseid)
JOIN {role_assignments} ra ON (ra.contextid = c.id AND ra.roleid = :roleid AND ra.userid = ue.userid)";
$params = array('courseid'=>$data->courseid, 'roleid'=>$withroleid, 'courselevel'=>CONTEXT_COURSE);
if ($withroleid) {
$sql = "SELECT ue.*
FROM {user_enrolments} ue
JOIN {enrol} e ON (e.id = ue.enrolid AND e.courseid = :courseid)
JOIN {context} c ON (c.contextlevel = :courselevel AND c.instanceid = e.courseid)
JOIN {role_assignments} ra ON (ra.contextid = c.id AND ra.roleid = :roleid AND ra.userid = ue.userid)";
$params = array('courseid'=>$data->courseid, 'roleid'=>$withroleid, 'courselevel'=>CONTEXT_COURSE);
} else {
// without any role assigned at course context
$sql = "SELECT ue.*
FROM {user_enrolments} ue
JOIN {enrol} e ON (e.id = ue.enrolid AND e.courseid = :courseid)
JOIN {context} c ON (c.contextlevel = :courselevel AND c.instanceid = e.courseid)
LEFT JOIN {role_assignments} ra ON (ra.contextid = c.id AND ra.userid = ue.userid)
WHERE ra.id IS NULL";
$params = array('courseid'=>$data->courseid, 'courselevel'=>CONTEXT_COURSE);
}
$rs = $DB->get_recordset_sql($sql, $params);
foreach ($rs as $ue) {