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'] = ''; // use ldap hash class to generate a password
75 or see here: http://techiesf1.blogspot.de/2012/03/add-ldap-user-from-php.html
77 if (is_array($user) && !empty($user)) {
78 if (ldap_add($this->ldap
, "uid=".$user['uid'].",".$this->dn
, $user)) {
92 public function delUser ($user) {
93 if (ldap_delete ($this->ldap
, $user.",".$this->dn
)) {
101 * returns ldap user array
103 * @param string $user
104 * @param string $password
107 public function bind ($user, $password) {
108 return ldap_bind($this->ldap
, $user.",".$this->dn
, $password);
112 * search user on ldap server
114 * @param string $search
117 public function search ($search) {
118 return ldap_search($this->ldap
, $this->dn
, $search);
122 * get entries from search resource
124 * @param resource $resource
127 public function get_entries ($resource) {
128 return ldap_get_entries($this->ldap
, $resource);
132 * close ldap connection
134 public function close () {
135 ldap_close($this->ldap
);