This file is indexed.

/usr/share/horde/turba/lib/Driver/Vbook.php is in php-horde-turba 4.1.3-1.

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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?php
/**
 * Turba directory driver implementation for virtual address books.
 *
 * Copyright 2005-2013 Horde LLC (http://www.horde.org/)
 *
 * See the enclosed file LICENSE for license information (ASL).  If you
 * did not receive this file, see http://www.horde.org/licenses/apache.
 *
 * @author   Michael J. Rubinsky <mrubinsk@horde.org>
 * @category Horde
 * @license  http://www.horde.org/licenses/apache ASL
 * @package  Turba
 */
class Turba_Driver_Vbook extends Turba_Driver
{
    /**
     * Search type for this virtual address book.
     *
     * @var string
     */
    public $searchType;

    /**
     * The search criteria that defines this virtual address book.
     *
     * @var array
     */
    public $searchCriteria;

    /**
     *
     * @see Turba_Driver::__construct
     * @throws Turba_Exception
     */
    public function __construct($name = '', array $params = array())
    {
        parent::__construct($name, $params);

        /* Grab a reference to the share for this vbook. */
        $this->_share = $this->_params['share'];

        /* Load the underlying driver. */
        $this->_driver = $GLOBALS['injector']->getInstance('Turba_Factory_Driver')->create($this->_params['source']);

        $this->searchCriteria = empty($this->_params['criteria'])
            ? array()
            : $this->_params['criteria'];
        $this->searchType = (count($this->searchCriteria) > 1)
            ? 'advanced'
            : 'basic';
    }

    /**
     * Return the owner to use when searching or creating contacts in
     * this address book.
     *
     * @return string
     */
    protected function _getContactOwner()
    {
        return $this->_driver->getContactOwner();
    }

    /**
     * Return all entries matching the combined searches represented by
     * $criteria and the vitural address book's search criteria.
     *
     * @param array $criteria  Array containing the search criteria.
     * @param array $fields    List of fields to return
     * @param array $blobFileds  Array of fields that contain
     *
     * @return array  Hash containing the search results.
     * @throws Turba_Exception
     */
    protected function _search(array $criteria, array $fields, array $blobFields = array(), $count_only = false)
    {
        /* Add the passed in search criteria to the vbook criteria
         * (which need to be mapped from turba fields to
         * driver-specific fields). */
        $criteria['AND'][] = $this->makeSearch($this->searchCriteria, 'AND', array());
        $results = $this->_driver->_search($criteria, $fields, $blobFields);

        return $count_only ? count($results) : $results;
    }

    /**
     * Reads the requested entries from the underlying source.
     *
     * @param string $key        The primary key field to use.
     * @param mixed $ids         The ids of the contacts to load.
     * @param string $owner      Only return contacts owned by this user.
     * @param array $fields      List of fields to return.
     * @param array $blobFields  Array of fields containing binary data.
     *
     * @return array  Hash containing the search results.
     * @throws Turba_Exception
     */
    protected function _read($key, $ids, $owner, array $fields,
                             array $blobFields = array())
    {
        return $this->_driver->_read($key, $ids, $owner, $fields, $blobFields);
    }

    /**
     * Adds the specified contact to the addressbook.
     *
     * @param array $attributes  The attribute values of the contact.
     * @param array $blob_fields TODO
     *
     * @throws Turba_Exception
     */
    protected function _add(array $attributes, array $blob_fields = array())
    {
        throw new Turba_Exception(_("You cannot add new contacts to a virtual address book"));
    }

    /**
     * Not supported for virtual address books.
     *
     * @see Turba_Driver::_delete
     * @throws Turba_Exception
     */
    protected function _delete($object_key, $object_id)
    {
        throw new Turba_Exception(_("You cannot delete contacts from a virtual address book"));
    }

    /**
     * @see Turba_Driver::_save
     */
    protected function _save(Turba_Object $object)
    {
        return $this->_driver->save($object);
    }

    /**
     * Check to see if the currently logged in user has requested permissions.
     *
     * @param integer $perm  The permissions to check against.
     *
     * @return boolean  True or False.
     */
    public function hasPermission($perm)
    {
        return $this->_driver->hasPermission($perm);
    }

}