0
0
Fork 0
mirror of https://github.com/verdigado/organization_folders.git synced 2024-12-06 11:22:41 +01:00

Added inherit managers attribute to resources

This commit is contained in:
Jonathan Treffler 2024-11-06 17:32:33 +01:00
parent f7b3b2f255
commit fdb4b8fc76
8 changed files with 65 additions and 4 deletions

View file

@ -67,6 +67,7 @@ class ResourceService {
string $name,
?int $parentResourceId = null,
bool $active = true,
bool $inheritManagers = true,
?int $membersAclPermission = null,
?int $managersAclPermission = null,
@ -82,6 +83,7 @@ class ResourceService {
$resource->setOrganizationFolderId($organizationFolderId);
$resource->setName($name);
$resource->setActive($active);
$resource->setInheritManagers($inheritManagers);
$resource->setLastUpdatedTimestamp(time());
if(isset($parentResourceId)) {
@ -131,6 +133,7 @@ class ResourceService {
?string $name = null,
?int $parentResource = null,
?bool $active = null,
?bool $inheritManagers = null,
?int $membersAclPermission = null,
?int $managersAclPermission = null,
@ -160,6 +163,10 @@ class ResourceService {
$resource->setActive($active);
}
if(isset($inheritManagers)) {
$resource->setInheritManagers($inheritManagers);
}
if($resource->getType() === "folder") {
if(isset($membersAclPermission)) {
$resource->setMembersAclPermission($membersAclPermission);
@ -231,7 +238,8 @@ class ResourceService {
} else if($resourceMember->getType() === MemberType::GROUP->value) {
$mapping = $this->userMappingManager->mappingFromId("group", $resourceMember->getPrincipal());
} else if($resourceMember->getType() === MemberType::ROLE->value) {
[$organizationProviderId, $roleId] = explode(":", $resourceMember->getPrincipal(), 2);
['organizationProviderId' => $organizationProviderId, 'roleId' => $roleId] = $resourceMember->getParsedPrincipal();
$organizationProvider = $this->organizationProviderManager->getOrganizationProvider($organizationProviderId);
$role = $organizationProvider->getRole($roleId);
$mapping = $this->userMappingManager->mappingFromId("group", $role->getMembersGroup());
@ -296,6 +304,14 @@ class ResourceService {
return $subResources;
}
public function getParentResource(Resource $resource): ?Resource {
if(!is_null($resource->getParentResource())) {
return $this->find($resource->getParentResource());
} else {
return null;
}
}
public function deleteById(int $id): Resource {
try {
$resource = $this->mapper->find($id);