]> git.mjollnir.org Git - moodle.git/commitdiff
cron unenrolment of manual should takes place in the main cron, MDL-10181
authortoyomoyo <toyomoyo>
Wed, 4 Jul 2007 02:24:05 +0000 (02:24 +0000)
committertoyomoyo <toyomoyo>
Wed, 4 Jul 2007 02:24:05 +0000 (02:24 +0000)
admin/cron.php
enrol/manual/enrol.php

index 8d1a074132dc5ab0e4727260eb6c383498d7c20d..483048cb89d51afc0ab78b5aaf962ab61c817745 100644 (file)
 
     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');
index 43bb52cdf79c1b9c5731058a3e01bea787cdfda0..8088fafbd9faf994286d3e503f1a38bd82e1cd33 100644 (file)
@@ -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)) {