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