Skip to content

Commit

Permalink
MDL-26066 fix invalid type comparison when course id used and typo fix
Browse files Browse the repository at this point in the history
  • Loading branch information
skodak committed Jan 23, 2011
1 parent 17e0390 commit 87e8869
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions enrol/database/lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -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');
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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');
Expand Down Expand Up @@ -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
Expand All @@ -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;
Expand Down

0 comments on commit 87e8869

Please sign in to comment.