From: iarenaza Date: Mon, 2 Jun 2008 22:39:39 +0000 (+0000) Subject: MDL-15039 Apostrophes in idnumber prevent users from being unenrolled via LDAP X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=37ad7544f962077ee53241036827412e34aa33ee;p=moodle.git MDL-15039 Apostrophes in idnumber prevent users from being unenrolled via LDAP If any member of a course has an ID number containing an apostrophe (eg. CN=Paddy O'Brien,OU=Students,DC=etc...), no other members will ever be unenrolled via LDAP. Thanks to Michael Woods for the bug report and proposed solution. Merged from MOODLE_18_STABLE. --- diff --git a/enrol/ldap/enrol.php b/enrol/ldap/enrol.php index 33d73bf5a6..999f1b73b6 100755 --- a/enrol/ldap/enrol.php +++ b/enrol/ldap/enrol.php @@ -237,6 +237,7 @@ function sync_enrolments($type, $enrol = false) { $ldapmembers = $course[strtolower($CFG->{'enrol_ldap_memberattribute_role'.$role->id} )]; unset($ldapmembers['count']); // remove oddity ;) + $ldapmembers = addslashes_recursive($ldapmembers); } // prune old ldap enrolments @@ -274,18 +275,18 @@ function sync_enrolments($type, $enrol = false) { $sql = 'SELECT id,1 FROM {user} ' ." WHERE idnumber=?"; $member = $DB->get_record_sql($sql, array($ldapmember)); -// print "sql: $sql \nidnumber = $ldapmember \n" . var_dump($member); +// print "sql: $sql \nidnumber = ".stripslashes($ldapmember)." \n".var_dump($member); if(empty($member) || empty($member->id)){ - print "Could not find user $ldapmember, skipping\n"; + print "Could not find user ".stripslashes($ldapmember).", skipping\n"; continue; } $member = $member->id; if (!$DB->get_record('role_assignments', array('roleid'=>$role->id, 'contextid'=>$context->id, 'userid'=>$member, 'enrol'=>'ldap'))){ if (role_assign($role->id, $member, 0, $context->id, 0, 0, 0, 'ldap')){ - print "Assigned role $type to $member ($ldapmember) for course $course_obj->id ($course_obj->shortname)\n"; + print "Assigned role $type to $member (".stripslashes($ldapmember).") for course $course_obj->id ($course_obj->shortname)\n"; } else { - print "Failed to assign role $type to $member ($ldapmember) for course $course_obj->id ($course_obj->shortname)\n"; + print "Failed to assign role $type to $member (".stripslashes($ldapmember).") for course $course_obj->id ($course_obj->shortname)\n"; } } }