This file is indexed.

/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;
    }
}