MDL-52186 enrol_meta: Sync only active enrol_meta instances

Thanks to Peter Klinka for the solution!
This commit is contained in:
Jun Pataleta
2016-11-16 09:47:03 +08:00
parent 55fb326d70
commit 39d602e4b9
+2 -1
View File
@@ -307,11 +307,12 @@ function enrol_meta_sync($courseid = NULL, $verbose = false) {
ELSE 0 END) AS timeend
FROM {user_enrolments} pue
JOIN {enrol} pe ON (pe.id = pue.enrolid AND pe.enrol <> 'meta' AND pe.enrol $enabled)
JOIN {enrol} e ON (e.customint1 = pe.courseid AND e.enrol = 'meta' $onecourse)
JOIN {enrol} e ON (e.customint1 = pe.courseid AND e.enrol = 'meta' AND e.status = :enrolstatus $onecourse)
JOIN {user} u ON (u.id = pue.userid AND u.deleted = 0)
LEFT JOIN {user_enrolments} ue ON (ue.enrolid = e.id AND ue.userid = pue.userid)
WHERE ue.id IS NULL
GROUP BY pue.userid, e.id";
$params['enrolstatus'] = ENROL_INSTANCE_ENABLED;
$rs = $DB->get_recordset_sql($sql, $params);
foreach($rs as $ue) {