/** * Return the mail addresses of the KolabInetOrgPersons with the given uid * or mail address and include all alias and delegate addresses. * * @param string $uid The uid to search for. * @param string $mail The mail address to search for. * * @return array The GUID(s). * * @throws Horde_Kolab_Server_Exception */ public function searchAddressesForUidOrMail($uid, $mail) { $criteria = new Horde_Kolab_Server_Query_Element_And(new Horde_Kolab_Server_Query_Element_Equals('Objectclass', Horde_Kolab_Server_Object_Kolabinetorgperson::OBJECTCLASS_KOLABINETORGPERSON), new Horde_Kolab_Server_Query_Element_Or(new Horde_Kolab_Server_Query_Element_Equals('Uid', $uid), new Horde_Kolab_Server_Query_Element_Equals('Mail', $mail))); $search = new Horde_Kolab_Server_Search_Operation_Constraint_Strict($this->_search); $data = $search->searchAttributes($criteria, array('Mail', 'Alias')); if (empty($data)) { return array(); } $mail = $this->getComposite()->structure->getAttributeInternal('Mail'); $alias = $this->getComposite()->structure->getAttributeInternal('Alias'); if (isset($result[$alias])) { $addrs = array_merge($data[$mail], $data[$alias]); } else { $addrs = $data[$mail]; } $criteria = new Horde_Kolab_Server_Query_Element_And(new Horde_Kolab_Server_Query_Element_Equals('Objectclass', Horde_Kolab_Server_Object_Kolabinetorgperson::OBJECTCLASS_KOLABINETORGPERSON), new Horde_Kolab_Server_Query_Element_Equals('Delegate', $data[$mail][0])); $data = $this->_search->searchAttributes($criteria, array('Mail', 'Alias')); if (!empty($data)) { foreach ($data as $adr) { if (isset($adr[$mail])) { $addrs = array_merge($addrs, $adr[$mail]); } if (isset($adr[$alias])) { $addrs = array_merge($addrs, $adr[$alias]); } } } $addrs = array_map('Horde_String::lower', $addrs); return $addrs; }
/** * Return the mail address of the KolabInetOrgPersons with the given uid or * mail address. * * @param string $uid The uid to search for. * @param string $mail The mail address to search for. * * @return array The GUID(s). * * @throws Horde_Kolab_Server_Exception */ public function searchMailForUidOrMail($uid, $mail) { $criteria = new Horde_Kolab_Server_Query_Element_And(new Horde_Kolab_Server_Query_Element_Equals('Objectclass', Horde_Kolab_Server_Object_Kolabinetorgperson::OBJECTCLASS_KOLABINETORGPERSON), new Horde_Kolab_Server_Query_Element_Or(new Horde_Kolab_Server_Query_Element_Equals('Uid', $uid), new Horde_Kolab_Server_Query_Element_Equals('Mail', $mail))); $data = $this->_search->searchAttributes($criteria, array('Mail')); $internal = $this->getComposite()->structure->getAttributeInternal('Mail'); if (!empty($data)) { return $data[$internal][0]; } else { return false; } }