diff --git a/admin/cron.php b/admin/cron.php index 8d1a074132d..483048cb89d 100644 --- a/admin/cron.php +++ b/admin/cron.php @@ -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'); diff --git a/enrol/manual/enrol.php b/enrol/manual/enrol.php index 43bb52cdf79..8088fafbd9f 100644 --- a/enrol/manual/enrol.php +++ b/enrol/manual/enrol.php @@ -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)) {