1: <?php
2: /**
3: * Ingo_Storage_Blacklist is the object used to hold blacklist rule
4: * information.
5: *
6: * See the enclosed file LICENSE for license information (ASL). If you
7: * did not receive this file, see http://www.horde.org/licenses/apache.
8: *
9: * @author Michael Slusarz <slusarz@horde.org>
10: * @package Ingo
11: */
12: class Ingo_Storage_Blacklist extends Ingo_Storage_Rule
13: {
14: protected $_addr = array();
15: protected $_folder = '';
16: protected $_obtype = Ingo_Storage::ACTION_BLACKLIST;
17:
18: /**
19: * Sets the list of blacklisted addresses.
20: *
21: * @param mixed $data The list of addresses (array or string).
22: * @param boolean $sort Sort the list?
23: *
24: * @return boolean True on success.
25: * @throws Ingo_Exception
26: */
27: public function setBlacklist($data, $sort = false)
28: {
29: $addr = array_filter($this->_addressList($data, $sort), array('Ingo', 'filterEmptyAddress'));
30: if (!empty($GLOBALS['conf']['storage']['maxblacklist'])) {
31: $addr_count = count($addr);
32: if ($addr_count > $GLOBALS['conf']['storage']['maxblacklist']) {
33: throw new Ingo_Exception(sprintf(_("Maximum number of blacklisted addresses exceeded (Total addresses: %s, Maximum addresses: %s). Could not add new addresses to blacklist."), $addr_count, $GLOBALS['conf']['storage']['maxblacklist']));
34: }
35: }
36:
37: $this->_addr = $addr;
38: return true;
39: }
40:
41: /**
42: */
43: public function setBlacklistFolder($data)
44: {
45: $this->_folder = $data;
46: }
47:
48: /**
49: */
50: public function getBlacklist()
51: {
52: return $this->_addr;
53: }
54:
55: /**
56: */
57: public function getBlacklistFolder()
58: {
59: return $this->_folder;
60: }
61:
62: }
63: