From 37ad7544f962077ee53241036827412e34aa33ee Mon Sep 17 00:00:00 2001 From: iarenaza Date: Mon, 2 Jun 2008 22:39:39 +0000 Subject: [PATCH] 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. --- enrol/ldap/enrol.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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"; } } } -- 2.39.5