/usr/share/php/Horde/Kolab/Server/List/Base.php is in php-horde-kolab-server 2.0.5-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | <?php
/**
* A server list implementation.
*
* PHP version 5
*
* @category Kolab
* @package Kolab_Server
* @author Gunnar Wrobel <wrobel@pardus.de>
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @link http://pear.horde.org/index.php?package=Kolab_Server
*/
/**
* A server list implementation.
*
* Copyright 2008-2016 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
*
* @category Kolab
* @package Kolab_Server
* @author Gunnar Wrobel <wrobel@pardus.de>
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @link http://pear.horde.org/index.php?package=Kolab_Server
*/
class Horde_Kolab_Server_List_Base
implements Horde_Kolab_Server_List_Interface
{
/**
* 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;
}
}
|