mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-07-23 04:14:36 +02:00
Added various useful presets for permissions
This commit is contained in:
parent
5829d42968
commit
1de88e0494
13 changed files with 369 additions and 231 deletions
|
@ -206,7 +206,7 @@ class PermissionResolver
|
|||
|
||||
/**
|
||||
* This functions sets all operations mentioned in the alsoSet value of a permission, so that the structure is always valid.
|
||||
* @param User $user
|
||||
* @param HasPermissionsInterface $user
|
||||
* @return void
|
||||
*/
|
||||
public function ensureCorrectSetOperations(HasPermissionsInterface $user): void
|
||||
|
@ -261,6 +261,26 @@ class PermissionResolver
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets all operations of the given permissions to the given value.
|
||||
* Please note that you have to call ensureCorrectSetOperations() after this function, to ensure that all alsoSet values are set.
|
||||
*
|
||||
* @param HasPermissionsInterface $perm_holder
|
||||
* @param string $permission
|
||||
* @param bool|null $new_value
|
||||
* @return void
|
||||
*/
|
||||
public function setAllOperationsOfPermission(HasPermissionsInterface $perm_holder, string $permission, ?bool $new_value): void
|
||||
{
|
||||
if (!$this->isValidPermission($permission)) {
|
||||
throw new InvalidArgumentException(sprintf('A permission with that name is not existing! Got %s.', $permission));
|
||||
}
|
||||
|
||||
foreach ($this->permission_structure['perms'][$permission]['operations'] as $op_key => $op) {
|
||||
$this->setPermission($perm_holder, $permission, $op_key, $new_value);
|
||||
}
|
||||
}
|
||||
|
||||
protected function generatePermissionStructure()
|
||||
{
|
||||
$cache = new ConfigCache($this->cache_file, $this->is_debug);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue