| | |
| | | /** private properties */ |
| | | protected $cache = null; |
| | | protected $attributes = array('dn'); |
| | | protected $error; |
| | | |
| | | function __construct($config = null) |
| | | { |
| | |
| | | |
| | | case LOG_ERR: |
| | | case LOG_WARNING: |
| | | $this->error = $msg; |
| | | rcube::raise_error($msg, true, false); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Returns the last LDAP error occurred |
| | | * |
| | | * @return mixed Error message string or null if no error occured |
| | | */ |
| | | function get_error() |
| | | { |
| | | return $this->error; |
| | | } |
| | | |
| | | /** |
| | |
| | | $this->_debug("C: Replace $dn: ".print_r($entry, true)); |
| | | |
| | | if (!ldap_mod_replace($this->conn, $dn, $entry)) { |
| | | $this->_debug("S: ".ldap_error($this->conn)); |
| | | $this->_error("ldap_mod_replace() failed with " . ldap_error($this->conn)); |
| | | return false; |
| | | } |
| | | |
| | |
| | | $this->_debug("C: Add $dn: ".print_r($entry, true)); |
| | | |
| | | if (!ldap_mod_add($this->conn, $dn, $entry)) { |
| | | $this->_debug("S: ".ldap_error($this->conn)); |
| | | $this->_error("ldap_mod_add() failed with " . ldap_error($this->conn)); |
| | | return false; |
| | | } |
| | | |
| | |
| | | $this->_debug("C: Delete $dn: ".print_r($entry, true)); |
| | | |
| | | if (!ldap_mod_del($this->conn, $dn, $entry)) { |
| | | $this->_debug("S: ".ldap_error($this->conn)); |
| | | $this->_error("ldap_mod_del() failed with " . ldap_error($this->conn)); |
| | | return false; |
| | | } |
| | | |
| | |
| | | $this->_debug("C: Rename $dn to $newrdn"); |
| | | |
| | | if (!ldap_rename($this->conn, $dn, $newrdn, $newparent, $deleteoldrdn)) { |
| | | $this->_debug("S: ".ldap_error($this->conn)); |
| | | $this->_error("ldap_rename() failed with " . ldap_error($this->conn)); |
| | | return false; |
| | | } |
| | | |
| | |
| | | $list = ldap_get_entries($this->conn, $result); |
| | | |
| | | if ($list === false) { |
| | | $this->_debug("S: ".ldap_error($this->conn)); |
| | | $this->_error("ldap_get_entries() failed with " . ldap_error($this->conn)); |
| | | return array(); |
| | | } |
| | | |
| | |
| | | $this->_debug("S: $count record(s)"); |
| | | } |
| | | else { |
| | | $this->_debug("S: ".ldap_error($this->conn)); |
| | | $this->_error("ldap_list() failed with " . ldap_error($this->conn)); |
| | | } |
| | | |
| | | return $list; |
| | |
| | | if ($this->conn && $dn) { |
| | | $result = @ldap_read($this->conn, $dn, $filter, $attributes, 0, (int)$this->config['sizelimit'], (int)$this->config['timelimit']); |
| | | if ($result === false) { |
| | | $this->_debug("S: ".ldap_error($this->conn)); |
| | | $this->_error("ldap_read() failed with " . ldap_error($this->conn)); |
| | | return false; |
| | | } |
| | | |