X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/919660678bec2b94eaa84ac60d0313f5ef07dfb7..refs/pull/3918/head:/app/Auth/Access/Ldap.php diff --git a/app/Auth/Access/Ldap.php b/app/Auth/Access/Ldap.php index 468c37626..4bf6db474 100644 --- a/app/Auth/Access/Ldap.php +++ b/app/Auth/Access/Ldap.php @@ -1,54 +1,61 @@ -setOption($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, $version); } /** * Search LDAP tree using the provided filter. + * * @param resource $ldapConnection * @param string $baseDn * @param string $filter * @param array|null $attributes + * * @return resource */ public function search($ldapConnection, $baseDn, $filter, array $attributes = null) @@ -58,8 +65,10 @@ class Ldap /** * Get entries from an ldap search result. + * * @param resource $ldapConnection * @param resource $ldapSearchResult + * * @return array */ public function getEntries($ldapConnection, $ldapSearchResult) @@ -69,27 +78,59 @@ class Ldap /** * Search and get entries immediately. + * * @param resource $ldapConnection * @param string $baseDn * @param string $filter * @param array|null $attributes + * * @return resource */ public function searchAndGetEntries($ldapConnection, $baseDn, $filter, array $attributes = null) { $search = $this->search($ldapConnection, $baseDn, $filter, $attributes); + return $this->getEntries($ldapConnection, $search); } /** * Bind to LDAP directory. + * * @param resource $ldapConnection * @param string $bindRdn * @param string $bindPassword + * * @return bool */ public function bind($ldapConnection, $bindRdn = null, $bindPassword = null) { return ldap_bind($ldapConnection, $bindRdn, $bindPassword); } + + /** + * Explode a LDAP dn string into an array of components. + * + * @param string $dn + * @param int $withAttrib + * + * @return array + */ + public function explodeDn(string $dn, int $withAttrib) + { + return ldap_explode_dn($dn, $withAttrib); + } + + /** + * Escape a string for use in an LDAP filter. + * + * @param string $value + * @param string $ignore + * @param int $flags + * + * @return string + */ + public function escape(string $value, string $ignore = '', int $flags = 0) + { + return ldap_escape($value, $ignore, $flags); + } }