Add labelprofile and devices read permission to readonly preset

This commit is contained in:
Jan Böhmer 2022-11-27 20:37:05 +01:00
parent 5229f2fc28
commit d69418bb9d
2 changed files with 16 additions and 1 deletions

View file

@ -43,6 +43,7 @@ declare(strict_types=1);
namespace App\DataFixtures; namespace App\DataFixtures;
use App\Entity\UserSystem\Group; use App\Entity\UserSystem\Group;
use App\Services\UserSystem\PermissionManager;
use App\Services\UserSystem\PermissionPresetsHelper; use App\Services\UserSystem\PermissionPresetsHelper;
use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager; use Doctrine\Persistence\ObjectManager;
@ -55,10 +56,12 @@ class GroupFixtures extends Fixture
private PermissionPresetsHelper $permission_presets; private PermissionPresetsHelper $permission_presets;
private PermissionManager $permissionManager;
public function __construct(PermissionPresetsHelper $permissionPresetsHelper) public function __construct(PermissionPresetsHelper $permissionPresetsHelper, PermissionManager $permissionManager)
{ {
$this->permission_presets = $permissionPresetsHelper; $this->permission_presets = $permissionPresetsHelper;
$this->permissionManager = $permissionManager;
} }
public function load(ObjectManager $manager): void public function load(ObjectManager $manager): void
@ -67,6 +70,7 @@ class GroupFixtures extends Fixture
$admins->setName('admins'); $admins->setName('admins');
//Set permissions using preset //Set permissions using preset
$this->permission_presets->applyPreset($admins, PermissionPresetsHelper::PRESET_ALL_ALLOW); $this->permission_presets->applyPreset($admins, PermissionPresetsHelper::PRESET_ALL_ALLOW);
$this->addDevicesPermissions($admins);
$this->setReference(self::ADMINS, $admins); $this->setReference(self::ADMINS, $admins);
$manager->persist($admins); $manager->persist($admins);
@ -79,9 +83,16 @@ class GroupFixtures extends Fixture
$users = new Group(); $users = new Group();
$users->setName('users'); $users->setName('users');
$this->permission_presets->applyPreset($users, PermissionPresetsHelper::PRESET_EDITOR); $this->permission_presets->applyPreset($users, PermissionPresetsHelper::PRESET_EDITOR);
$this->addDevicesPermissions($users);
$this->setReference(self::USERS, $users); $this->setReference(self::USERS, $users);
$manager->persist($users); $manager->persist($users);
$manager->flush(); $manager->flush();
} }
private function addDevicesPermissions(Group $group): void
{
$this->permissionManager->setAllOperationsOfPermission($group, 'devices', true);
}
} }

View file

@ -129,6 +129,10 @@ class PermissionPresetsHelper
//Label permissions //Label permissions
$this->permissionResolver->setPermission($perm_holder, 'labels', 'create_labels', PermissionData::ALLOW); $this->permissionResolver->setPermission($perm_holder, 'labels', 'create_labels', PermissionData::ALLOW);
$this->permissionResolver->setPermission($perm_holder, 'labels', 'edit_options', PermissionData::ALLOW); $this->permissionResolver->setPermission($perm_holder, 'labels', 'edit_options', PermissionData::ALLOW);
$this->permissionResolver->setPermission($perm_holder, 'labels', 'read_profiles', PermissionData::ALLOW);
//Set devices permissions
$this->permissionResolver->setPermission($perm_holder, 'devices', 'read', PermissionData::ALLOW);
return $perm_holder; return $perm_holder;
} }