Merge branch 'w12_MDL-32045_m23_resetnorole' of git://github.com/skodak/moodle
This commit is contained in:
@@ -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
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user