Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge branch 'w04_MDL-26066_20_dbenrol' of git://github.com/skodak/mo…

…odle
  • Loading branch information...
commit c053c86c5b1ac6f6839d9fe9b93b79d273080767 2 parents b6c7558 + 87e8869
@samhemelryk samhemelryk authored
Showing with 13 additions and 7 deletions.
  1. +13 −7 enrol/database/lib.php
View
20 enrol/database/lib.php
@@ -74,7 +74,7 @@ public function sync_user_enrolments($user) {
$localrolefield = $this->get_config('localrolefield');
$localuserfield = $this->get_config('localuserfield');
- $localcoursefiled = $this->get_config('localcoursefield');
+ $localcoursefield = $this->get_config('localcoursefield');
$unenrolaction = $this->get_config('unenrolaction');
$defaultrole = $this->get_config('defaultrole');
@@ -117,7 +117,7 @@ public function sync_user_enrolments($user) {
// missing course info
continue;
}
- if (!$course = $DB->get_record('course', array($localcoursefiled=>$fields[$coursefield]), 'id,visible')) {
+ if (!$course = $DB->get_record('course', array($localcoursefield=>$fields[$coursefield]), 'id,visible')) {
continue;
}
if (!$course->visible and $ignorehidden) {
@@ -265,7 +265,7 @@ public function sync_enrolments() {
$localrolefield = $this->get_config('localrolefield');
$localuserfield = $this->get_config('localuserfield');
- $localcoursefiled = $this->get_config('localcoursefield');
+ $localcoursefield = $this->get_config('localcoursefield');
$unenrolaction = $this->get_config('unenrolaction');
$defaultrole = $this->get_config('defaultrole');
@@ -308,7 +308,7 @@ public function sync_enrolments() {
// first find all existing courses with enrol instance
$existing = array();
- $sql = "SELECT c.id, c.visible, c.$localcoursefiled AS mapping, e.id AS enrolid
+ $sql = "SELECT c.id, c.visible, c.$localcoursefield AS mapping, e.id AS enrolid
FROM {course} c
JOIN {enrol} e ON (e.courseid = c.id AND e.enrol = 'database')";
$rs = $DB->get_recordset_sql($sql); // watch out for idnumber duplicates
@@ -321,11 +321,17 @@ public function sync_enrolments() {
$rs->close();
// add necessary enrol instances that are not present yet
- $sql = "SELECT c.id, c.visible, c.$localcoursefiled AS mapping
+ $params = array();
+ $localnotempty = "";
+ if ($localcoursefield !== 'id') {
+ $localnotempty = "AND c.$localcoursefield <> :lcfe";
+ $params['lcfe'] = $DB->sql_empty();
+ }
+ $sql = "SELECT c.id, c.visible, c.$localcoursefield AS mapping
FROM {course} c
LEFT JOIN {enrol} e ON (e.courseid = c.id AND e.enrol = 'database')
- WHERE e.id IS NULL AND c.$localcoursefiled <> ?";
- $rs = $DB->get_recordset_sql($sql, array($DB->sql_empty()));
+ WHERE e.id IS NULL $localnotempty";
+ $rs = $DB->get_recordset_sql($sql, $params);
foreach ($rs as $course) {
if (empty($course->mapping)) {
continue;
Please sign in to comment.
Something went wrong with that request. Please try again.