/usr/share/php/Horde/Kolab/Server/Search/Operation/Addressesforuidormail.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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | <?php
/**
* 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
*/
/**
* Return the mail addresses of the KolabInetOrgPersons with the given uid or
* mail address and include all alias and delegate addresses.
*
* @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_Search_Operation_Addressesforuidormail
extends Horde_Kolab_Server_Search_Operation_Base
{
/**
* The basic attribute search.
*
* @var Horde_Kolab_Server_Search_Operation
*/
private $_search;
/**
* Constructor
*
* @param Horde_Kolab_Server_Composite $composite A link to the composite
* server handler.
*/
public function __construct(Horde_Kolab_Server_Composite $composite)
{
$this->_composite = $composite;
$this->_search = new Horde_Kolab_Server_Search_Operation_Attributes(
$this->getComposite()
);
}
/**
* 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;
}
}
|