3 * @author Jan Altensen (Stricted)
4 * @copyright 2013-2014 Jan Altensen (Stricted)
5 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
13 protected $ldap = Null;
22 * Constructs a new instance of LDAP class.
24 public function __construct () {
25 if (!extension_loaded("ldap")) {
26 throw new Exception("Can not find LDAP extension.");
31 * connect to a ldap server
33 * @param string $server
34 * @param integer $port
36 * @return bool true/false
38 public function connect ($server, $port, $dn) {
39 $this->ldap
= ldap_connect($server, $port);
43 ldap_set_option($this->ldap
, LDAP_OPT_PROTOCOL_VERSION
, 3);
44 ldap_set_option($this->ldap
, LDAP_OPT_REFERRALS
, 0);
48 throw new Exception("Cant connect to ldap server.");
55 * add a user to ldap server
60 public function addUser (Array $user) {
64 $user['dn'] = 'uid=testuser,ou=Users,dc=ldap,dc=test,dc=server,dc=com';
65 $user['objectClass'] = array('inetOrgPerson', 'organizationalPerson', 'posixAccount');
66 $user['cn'] = 'Test User';
67 $user['gidNumber'] = '5001';
68 $user['homeDirectory'] = '/home/testuser';
70 $user['uid'] = 'testuser';
71 $user['uidNumber'] = '5001';
72 $user['loginShell'] = '/bin/bash';
73 $user['mail'] = 'test@user.com';
74 $user['userPassword'] = '';
76 if (is_array($user) && !empty($user)) {
77 if (ldap_add($this->ldap
, $this->dn
, $user) {
91 public function delUser ($user) {
92 if (ldap_delete ($this->ldap
, $user.",".$this->dn
)) {
100 * returns ldap user array
102 * @param string $user
103 * @param string $password
106 public function bind ($user, $password) {
107 return ldap_bind($this->ldap
, $user.",".$this->dn
, $password);
111 * search user on ldap server
113 * @param string $search
116 public function search ($search) {
117 return ldap_search($this->ldap
, $this->dn
, $search);
121 * get entries from search resource
123 * @param resource $resource
126 public function get_entries ($resource) {
127 return ldap_get_entries($this->ldap
, $resource);
131 * close ldap connection
133 public function close () {
134 ldap_close($this->ldap
);