abstract public function read($uid, $attrs = null);
/**
+ * Find object data matching a given set of criteria.
+ *
+ * @param array $criteria The criteria for the search.
+ * @param string $params Additional search parameters.
+ *
+ * @return array The result array.
+ *
+ * @throws Horde_Kolab_Server_Exception
+ */
+ abstract public function find($criteria, $params = array());
+
+ /**
* Stub for saving object data.
*
* @param string $uid The UID of the object to be added.
private $_schema;
/**
+ * The last search result.
+ *
+ * @var Net_LDAP2_Search
+ */
+ public $lastSearch;
+
+ /**
* Construct a new Horde_Kolab_Server_ldap object.
*
* @param array $params Parameter array.
}
/**
+ * Find object data matching a given set of criteria.
+ *
+ * @param array $criteria The criteria for the search.
+ * @param string $params Additional search parameters.
+ *
+ * @return array The result array.
+ *
+ * @throws Horde_Kolab_Server_Exception
+ */
+ public function find($criteria, $params = array())
+ {
+ return $this->search($this->searchQuery($criteria), $params);
+ }
+
+ /**
* Search for object data.
*
* @param string $filter The LDAP search filter.
if (!isset($base)) {
$base = $this->_base_dn;
}
- $result = $this->_ldap->search($base, $filter, $params);
+ $this->lastSearch = &$this->_ldap->search($base, $filter, $params);
if (is_a($result, 'PEAR_Error')) {
throw new Horde_Kolab_Server_Exception($result,
Horde_Kolab_Server_Exception::SYSTEM);
}
- $data = $result->as_struct();
+ $data = $this->lastSearch->as_struct();
if (is_a($data, 'PEAR_Error')) {
throw new Horde_Kolab_Server_Exception($data,
Horde_Kolab_Server_Exception::SYSTEM);