]> source.dussan.org Git - nextcloud-server.git/commitdiff
LDAP: also prepare for DN for login due to the escape changes for #419. Hopefully...
authorArthur Schiwon <blizzz@owncloud.com>
Tue, 20 Nov 2012 16:36:25 +0000 (17:36 +0100)
committerArthur Schiwon <blizzz@owncloud.com>
Tue, 20 Nov 2012 16:36:25 +0000 (17:36 +0100)
apps/user_ldap/lib/access.php

index 34cad9cf435aecbed1d0333a7c5079b36fcb50c1..35b9f3726ec02c0b68992f16fd7b80caf4b153cc 100644 (file)
@@ -56,7 +56,7 @@ abstract class Access {
                        return false;
                }
                //Slashes should only be escaped in filters, not bases.
-               $dn = $dn = str_replace('\\5c', '\\', $dn);
+               $dn = $this->DNasBaseParameter($dn);
                $rr = @ldap_read($cr, $dn, 'objectClass=*', array($attr));
                if(!is_resource($rr)) {
                        \OCP\Util::writeLog('user_ldap', 'readAttribute failed for DN '.$dn, \OCP\Util::DEBUG);
@@ -649,6 +649,7 @@ abstract class Access {
        }
 
        public function areCredentialsValid($name, $password) {
+               $name = $this->DNasBaseParameter($name);
                $testConnection = clone $this->connection;
                $credentials = array(
                        'ldapAgentName' => $name,
@@ -735,4 +736,16 @@ abstract class Access {
 
                return strtoupper($hex_guid_to_guid_str);
        }
+
+       /**
+        * @brief converts a stored DN so it can be used as base parameter for LDAP queries
+        * @param $dn the DN
+        * @returns String
+        *
+        * converts a stored DN so it can be used as base parameter for LDAP queries
+        * internally we store them for usage in LDAP filters
+        */
+       private function DNasBaseParameter($dn) {
+               return str_replace('\\5c', '\\', $dn);
+       }
 }
\ No newline at end of file