示例#1
0
文件: Base.php 项目: jubinpatel/horde
 /**
  * List all objects of a specific type.
  *
  * @param string $type   The type of the objects to be listed
  * @param array  $params Additional parameters.
  *
  * @return array An array of Kolab objects.
  *
  * @throws Horde_Kolab_Server_Exception
  *
  * @todo Sorting
  */
 public function listObjects($type, $params = null)
 {
     $result = Horde_Kolab_Server_Object::loadClass($type);
     $vars = get_class_vars($type);
     $criteria = call_user_func(array($type, 'getFilter'));
     $filter = $this->searchQuery($criteria);
     $sort = $vars['sort_by'];
     if (isset($params['sort'])) {
         $sort = $params['sort'];
     }
     $options = array('scope' => 'sub');
     if (isset($params['attributes'])) {
         $options['attributes'] = $params['attributes'];
     } else {
         $options['attributes'] = $this->getAttributes($type);
     }
     $data = $this->search($filter, $options, $base);
     if (empty($data)) {
         return array();
     }
     if ($sort) {
         /* @todo: sorting */
         /* $data = $result->as_sorted_struct(); */
         /*$this->sort($result, $sort); */
     }
     if (isset($params['from'])) {
         $from = $params['from'];
     } else {
         $from = -1;
     }
     if (isset($params['to'])) {
         $sort = $params['to'];
     } else {
         $to = -1;
     }
     if (!empty($vars['required_group'])) {
         $required_group = new Horde_Kolab_Server_Object_Kolabgroupofnames($this, null, $vars['required_group']);
     }
     $objects = array();
     foreach ($data as $uid => $entry) {
         if (!empty($vars['required_group'])) {
             if (!$required_group->exists() || !$required_group->isMember($uid)) {
                 continue;
             }
         }
         $objects[$uid] =& Horde_Kolab_Server_Object::factory($type, $uid, $this, $entry);
     }
     return $objects;
 }
示例#2
0
 /**
  * Check the generating of the "First Name" attribute.
  *
  * @param string $data   Object data.
  * @param string $expect Expect this full name.
  *
  * @dataProvider provideGetArrayChanges
  *
  * @return NULL
  */
 public function testGetArrayChanges($data, $expect)
 {
     $ko =& Horde_Kolab_Server_Object::factory('Horde_Kolab_Server_Object_Kolab_User', null, $this->_dummydb, array('dn' => 'test', 'cn' => 'Frank Mustermann', 'sn' => 'Mustermann'));
     $this->assertNoError($ko);
     $c = $ko->getArrayChanges($data[0], $data[1]);
     $this->assertEquals($expect, empty($c));
 }
示例#3
0
 /**
  * Delete an external account.
  *
  * @param string $mail The mail address of the pop3 account.
  *
  * @return NULL
  */
 public function deleteExternalAccount($mail)
 {
     $account[Horde_Kolab_Server_Object_Kolabpop3account::ATTRIBUTE_OWNERUID] = $this->getUid();
     $account[Horde_Kolab_Server_Object_Kolabpop3account::ATTRIBUTE_MAIL] = $mail;
     $object =& Horde_Kolab_Server_Object::factory('Horde_Kolab_Server_Object_Kolabpop3account', null, $this->server, $account);
     $object->delete();
 }