/usr/share/horde/ingo/lib/Perms.php is in php-horde-ingo 3.2.8-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 | <?php
/**
* Copyright 2014-2016 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.
* @category Horde
* @copyright 2013-2016 Horde LLC
* @license http://www.horde.org/licenses/gpl GPL
* @package Ingo
*/
/**
* Permission handling for Ingo.
*
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @copyright 2014-2016 Horde LLC
* @license http://www.horde.org/licenses/apache ASL
* @package Ingo
*/
class Ingo_Perms
{
/**
* Permission list.
*
* @var array
*/
private $_perms;
/**
* Constructor.
*/
public function __construct()
{
$this->_perms = array(
'max_blacklist' => array(
'title' => _("Maximum number of blacklist addresses."),
'type' => 'int'
),
'max_forward' => array(
'title' => _("Maximum number of forward addresses."),
'type' => 'int'
),
'max_rules' => array(
'title' => _("Maximum number of rules (0 to disable rules editing)."),
'type' => 'int'
),
'max_whitelist' => array(
'title' => _("Maximum number of whitelist addresses."),
'type' => 'int'
)
);
}
/**
* @see Horde_Registry_Application#perms()
*/
public function perms()
{
$perms = array(
'backends' => array(
'title' => _("Backends")
)
);
foreach (array_keys(Ingo::loadBackends()) as $key) {
$bkey = 'backends:' . $key;
$perms[$bkey] = array(
'title' => $key
);
foreach ($this->_perms as $key2 => $val2) {
$perms[$bkey . ':' . $key2] = array(
'title' => $val2['title'],
'type' => $val2['type']
);
}
}
return $perms;
}
/**
* @see Horde_Registry_Application#hasPermission()
*/
public function hasPermission($permission, $allowed, $opts)
{
if (($pos = strrpos($permission, ':')) !== false) {
$permission = substr($permission, $pos + 1);
}
switch ($permission) {
case 'max_blacklist':
case 'max_forward':
case 'max_rules':
case 'max_whitelist':
$allowed = max(array_map('intval', $allowed));
break;
}
return $allowed;
}
/**
* Get the full permission name for a permission.
*
* @param string $perm The permission.
*
* @return string The full (backend-specific) permission name.
*/
static public function getPerm($perm)
{
return 'backends:' . $GLOBALS['session']->get('ingo', 'backend/id') . ':' . $perm;
}
}
|