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
|
<?php
/**
* SAM external API interface.
*
* $Horde: sam/lib/api.php,v 1.8 2005/06/01 15:26:07 jan Exp $
*
* This file defines SAM's external API interface. Other applications
* can interact with SAM through this API.
*/
$_services['blacklistFrom'] = array(
'args' => array('addresses' => '{urn:horde}stringArray'),
'type' => 'boolean'
);
$_services['showBlacklist'] = array(
'link' => '%application%/blacklist.php'
);
$_services['whitelistFrom'] = array(
'args' => array('addresses' => '{urn:horde}stringArray'),
'type' => 'boolean'
);
$_services['showWhitelist'] = array(
'link' => '%application%/whitelist.php'
);
function _sam_whitelistFrom($addresses)
{
require_once dirname(__FILE__) . '/../lib/base.php';
global $sam_driver;
if (!$sam_driver->hasCapability('whitelist_from')) {
return false;
}
$sam_driver->retrieve();
$list = $sam_driver->getListOption('whitelist_from');
$list = preg_split("/\n/", $list);
if (is_array($addresses)) {
foreach ($addresses as $address) {
if (!in_array($address, $list)) {
$list[] = $address;
}
}
} elseif (!in_array($address, $list)) {
$list[] = $addresses;
}
$sam_driver->setListOption('whitelist_from', implode("\n", $list));
return $sam_driver->store();
}
function _sam_blacklistFrom($addresses)
{
require_once dirname(__FILE__) . '/../lib/base.php';
global $sam_driver;
if (!$sam_driver->hasCapability('blacklist_from')) {
return false;
}
$sam_driver->retrieve();
$list = $sam_driver->getListOption('blacklist_from');
$list = preg_split("/\n/", $list);
if (is_array($addresses)) {
foreach ($addresses as $address) {
if (!in_array($address, $list)) {
$list[] = $address;
}
}
} elseif (!in_array($address, $list)) {
$list[] = $addresses;
}
$sam_driver->setListOption('blacklist_from', implode("\n", $list));
return $sam_driver->store();
}
|