/usr/share/php/Horde/Kolab/Server/Connection/File.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 131 | <?php
/**
* A persistent file-based driver for simulating a Kolab user database stored in
* LDAP.
*
* 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
*/
/**
* This class provides a persistant class for testing the Kolab Server DB.
*
* 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_Connection_File
extends Horde_Kolab_Server_Connection_Mock
{
/**
* The file for storing the database data.
*
* @var string
*/
private $_file;
/**
* Set configuration parameters.
*
* @param array $params The parameters.
*
* @return NULL
*/
public function setParams(array $params)
{
if (isset($params['file'])) {
$this->_file = $params['file'];
}
parent::setParams($params);
}
/**
* Get the file parameter.
*
* @return NULL
*/
private function _getFile()
{
if (empty($this->_file)) {
throw new Horde_Kolab_Server_Exception('The file based driver requires a \'file\' parameter.');
}
return $this->_file;
}
/**
* Load the current state of the database.
*
* @return NULL
*/
protected function load()
{
$raw_data = file_get_contents($this->_getFile());
if (!$raw_data === false) {
$data = @unserialize($raw_data);
if ($data !== false) {
$this->data = $data;
} else {
$error = error_get_last();
if (isset($this->logger)) {
$this->logger->warn(sprintf('Horde_Kolab_Server_file failed to read the database from %s. Error was: %s',
$this->_getFile(), $error['message']));
}
$this->data = array();
}
}
}
/**
* Store the current state of the database.
*
* @return NULL
*/
protected function store()
{
$raw_data = serialize($this->data);
$result = @file_put_contents($this->_getFile(), $raw_data);
if ($result === false) {
$error = error_get_last();
if (isset($this->logger)) {
$this->logger->warn(sprintf('Horde_Kolab_Server_file failed to store the database in %s. Error was: %s',
$this->_getFile(), $error['message']));
}
}
}
/**
* Cleans the current state of the database.
*
* @return NULL
*/
public function clean()
{
unlink($this->_getFile());
$this->data = array();
$this->store();
}
/**
* Returns the path to the storage location of the database.
*
* @return string The path to the database.
*/
public function getStoragePath()
{
return $this->_getFile();
}
}
|