/** * get list of groups * * @param string $_filter * @param string $_sort * @param string $_dir * @param int $_start * @param int $_limit * @return Tinebase_Record_RecordSet with record class Tinebase_Model_Group */ public function getGroups($_filter = NULL, $_sort = 'name', $_dir = 'ASC', $_start = NULL, $_limit = NULL) { if (!empty($_filter)) { $searchString = "*" . Tinebase_Ldap::filterEscape($_filter) . "*"; $filter = "(&(objectclass=group)(|(cn={$searchString})))"; } else { $filter = 'objectclass=group'; } if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' search filter: ' . $filter); } $groups = $this->_ldap->fetchAll($this->_options['groupsDn'], $filter, array('cn', 'description', 'objectGUID'), 'cn'); $result = new Tinebase_Record_RecordSet('Tinebase_Model_Group'); foreach ($groups as $group) { $groupObject = new Tinebase_Model_Group(array('id' => $group['objectGUID'][0], 'name' => $group['cn'][0], 'description' => isset($group['description'][0]) ? $group['description'][0] : '')); $result->addRecord($groupObject); } return $result; }