Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 2
0
 /**
  * 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;
     }
 }
Esempio n. 3
0
 /**
  * Return the reference to the server structure.
  *
  * @return Horde_Kolab_Server_Structure_Interface
  */
 public function getStructure()
 {
     return $this->_search->getStructure();
 }