1 <?php namespace BookStack\Auth\Access;
5 * An object-orientated thin abstraction wrapper for common PHP LDAP functions.
6 * Allows the standard LDAP functions to be mocked for testing.
7 * @package BookStack\Services
13 * Connect to a LDAP server.
14 * @param string $hostName
18 public function connect($hostName, $port)
20 return ldap_connect($hostName, $port);
24 * Set the value of a LDAP option for the given connection.
25 * @param resource $ldapConnection
30 public function setOption($ldapConnection, $option, $value)
32 return ldap_set_option($ldapConnection, $option, $value);
36 * Set the version number for the given ldap connection.
37 * @param $ldapConnection
41 public function setVersion($ldapConnection, $version)
43 return $this->setOption($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, $version);
47 * Search LDAP tree using the provided filter.
48 * @param resource $ldapConnection
49 * @param string $baseDn
50 * @param string $filter
51 * @param array|null $attributes
54 public function search($ldapConnection, $baseDn, $filter, array $attributes = null)
56 return ldap_search($ldapConnection, $baseDn, $filter, $attributes);
60 * Get entries from an ldap search result.
61 * @param resource $ldapConnection
62 * @param resource $ldapSearchResult
65 public function getEntries($ldapConnection, $ldapSearchResult)
67 return ldap_get_entries($ldapConnection, $ldapSearchResult);
71 * Search and get entries immediately.
72 * @param resource $ldapConnection
73 * @param string $baseDn
74 * @param string $filter
75 * @param array|null $attributes
78 public function searchAndGetEntries($ldapConnection, $baseDn, $filter, array $attributes = null)
80 $search = $this->search($ldapConnection, $baseDn, $filter, $attributes);
81 return $this->getEntries($ldapConnection, $search);
85 * Bind to LDAP directory.
86 * @param resource $ldapConnection
87 * @param string $bindRdn
88 * @param string $bindPassword
91 public function bind($ldapConnection, $bindRdn = null, $bindPassword = null)
93 return ldap_bind($ldapConnection, $bindRdn, $bindPassword);
97 * Explode a LDAP dn string into an array of components.
99 * @param int $withAttrib
102 public function explodeDn(string $dn, int $withAttrib)
104 return ldap_explode_dn($dn, $withAttrib);
108 * Escape a string for use in an LDAP filter.
109 * @param string $value
110 * @param string $ignore
114 public function escape(string $value, string $ignore = "", int $flags = 0)
116 return ldap_escape($value, $ignore, $flags);