/** * Search specified contexts for the specified userid and return the * user dn like: cn=username,ou=suborg,o=org. It's actually a wrapper * around ldap_find_userdn(). * * @param string $userid the userid to search for (in external LDAP encoding, no magic quotes). * @return mixed the user dn or false */ protected function ldap_find_userdn($userid) { global $CFG; require_once $CFG->libdir . '/ldaplib.php'; $ldap_contexts = explode(';', $this->get_config('user_contexts')); $ldap_defaults = ldap_getdefaults(); return ldap_find_userdn($this->ldapconnection, $userid, $ldap_contexts, '(objectClass=' . $ldap_defaults['objectclass'][$this->get_config('user_type')] . ')', $this->get_config('idnumber_attribute'), $this->get_config('user_search_sub')); }
/** * Search specified contexts for the specified userid and return the * user dn like: cn=username,ou=suborg,o=org. It's actually a wrapper * around ldap_find_userdn(). * * @param string $userid the userid to search for (in external LDAP encoding, no magic quotes). * @return mixed the user dn or false */ protected function ldap_find_userdn($userid) { global $CFG; require_once $CFG->libdir . '/ldaplib.php'; $ldap_contexts = explode(';', $this->get_config('user_contexts')); return ldap_find_userdn($this->ldapconnection, $userid, $ldap_contexts, $this->userobjectclass, $this->get_config('idnumber_attribute'), $this->get_config('user_search_sub')); }
/** * Search specified contexts for username and return the user dn * like: cn=username,ou=suborg,o=org. It's actually a wrapper * around ldap_find_userdn(). * * @param resource $ldapconnection a valid LDAP connection * @param string $extusername the username to search (in external LDAP encoding, no db slashes) * @return mixed the user dn (external LDAP encoding) or false */ function ldap_find_userdn($ldapconnection, $extusername) { $ldap_contexts = explode(';', $this->config->contexts); if (!empty($this->config->create_context)) { array_push($ldap_contexts, $this->config->create_context); } return ldap_find_userdn($ldapconnection, $extusername, $ldap_contexts, $this->config->objectclass, $this->config->user_attribute, $this->config->search_sub); }
function ldap_login($extusername, $extpassword) { global $options; if ($options['ldap_enable'] != 1) { return false; } $ldapconnection = ldap_connect_moodle(); $ldap_user_dn = ldap_find_userdn($ldapconnection, $extusername); // If ldap_user_dn is empty, user does not exist if (!$ldap_user_dn) { ldap_close($ldapconnection); return false; } // Try to bind with current username and password $ldap_login = @ldap_bind($ldapconnection, $ldap_user_dn, $extpassword); ldap_close($ldapconnection); if ($ldap_login) { return true; } return false; }