This file is indexed.

/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;
    }

}