mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 16:32:18 +02:00
cron unenrolment of manual should takes place in the main cron, MDL-10181
This commit is contained in:
parent
eff9c473a6
commit
cf05753492
@ -142,13 +142,19 @@
|
||||
|
||||
mtrace('Removing expired enrolments ...', ''); // See MDL-8785
|
||||
$timenow = time();
|
||||
if ($oldenrolments = get_records_select('role_assignments', "timeend > 0 AND timeend < '$timenow'")) {
|
||||
mtrace(count($oldenrolments).' to delete');
|
||||
foreach ($oldenrolments as $oldenrolment) {
|
||||
if (role_unassign($oldenrolment->roleid, $oldenrolment->userid, 0, $oldenrolment->contextid)) {
|
||||
mtrace("Deleted expired role assignment $oldenrolment->roleid for user $oldenrolment->userid from context $oldenrolment->contextid");
|
||||
$somefound = false;
|
||||
// find courses where limited enrolment is enabled
|
||||
if($limitedcourses = get_records_select('course', 'enrolperiod > 0')) {
|
||||
foreach($limitedcourses as $course) {
|
||||
$context = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
$oldenrolments = get_records_select('role_assignments', 'timeend > 0 AND timeend < ' . $timenow . ' AND contextid = ' . $context->id);
|
||||
foreach ($oldenrolments as $oldenrolment) {
|
||||
role_unassign($oldenrolment->roleid, $oldenrolment->userid, 0, $oldenrolment->contextid);
|
||||
$somefound = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if($somefound) {
|
||||
mtrace('Done');
|
||||
} else {
|
||||
mtrace('none found');
|
||||
|
@ -232,31 +232,6 @@ function process_config($config) {
|
||||
function cron() {
|
||||
global $CFG;
|
||||
|
||||
|
||||
// Delete all assignments from the database that have already expired
|
||||
|
||||
$timenow = time();
|
||||
|
||||
if ($assignments = get_records_sql("SELECT ra.*, c.instanceid as courseid FROM
|
||||
{$CFG->prefix}role_assignments ra,
|
||||
{$CFG->prefix}context c
|
||||
WHERE ra.enrol = 'manual'
|
||||
AND ra.timeend > 0
|
||||
AND ra.timeend < $timenow
|
||||
AND ra.contextid = c.id
|
||||
AND c.contextlevel = ".CONTEXT_COURSE)) {
|
||||
foreach ($assignments as $assignment) {
|
||||
if ($course = get_record('course', 'id', $assignment->courseid)) {
|
||||
if (empty($course->enrolperiod)) { // This overrides student timeend
|
||||
continue;
|
||||
}
|
||||
}
|
||||
role_unassign($assignment->roleid, $assignment->userid, 0, $assignment->contextid);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Notify users about enrolments that are going to expire soon!
|
||||
|
||||
if (empty($CFG->lastexpirynotify)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user