Files
server/usr/share/psa-horde/ingo/lib/Storage/Mock.php
2026-01-07 20:52:11 +01:00

72 lines
1.8 KiB
PHP

<?php
/**
* Copyright 2012-2017 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 Jason M. Felice <jason.m.felice@gmail.com>
* @category Horde
* @license http://www.horde.org/licenses/apache ASL
* @package Ingo
*/
/**
* Ingo_Storage_Mock is used for testing purposes. It just keeps the data
* local and doesn't put it anywhere.
*
* @author Jason M. Felice <jason.m.felice@gmail.com>
* @category Horde
* @license http://www.horde.org/licenses/apache ASL
* @package Ingo
*/
class Ingo_Storage_Mock extends Ingo_Storage
{
/**
*/
protected $_data = array();
/**
*/
protected function _retrieve($field, $readonly = false)
{
if (empty($this->_data[$field])) {
switch ($field) {
case self::ACTION_BLACKLIST:
return new Ingo_Storage_Blacklist();
case self::ACTION_FILTERS:
$ob = new Ingo_Storage_Filters();
include INGO_BASE . '/config/prefs.php';
$ob->setFilterList(unserialize($_prefs['rules']['value']));
return $ob;
case self::ACTION_FORWARD:
return new Ingo_Storage_Forward();
case self::ACTION_VACATION:
return new Ingo_Storage_VacationTest();
case self::ACTION_WHITELIST:
return new Ingo_Storage_Whitelist();
case self::ACTION_SPAM:
return new Ingo_Storage_Spam();
default:
return false;
}
}
return $this->_data[$field];
}
/**
*/
protected function _store($ob)
{
$this->_data[$ob->obType()] = $ob;
}
}