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

split principal types into different subclasses, added principal factory, implemented principal friendlyNames and FullHierarchyNames, added parentOrganizationId attribute to organizations

This commit is contained in:
Jonathan Treffler 2024-11-26 18:19:05 +01:00
parent 225072bff7
commit 89ff5415dd
15 changed files with 321 additions and 47 deletions

View file

@ -2,7 +2,6 @@
namespace OCA\OrganizationFolders\Controller;
use OCA\OrganizationFolders\Model\Principal;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
@ -11,6 +10,7 @@ use OCA\OrganizationFolders\Service\ResourceService;
use OCA\OrganizationFolders\Service\ResourceMemberService;
use OCA\OrganizationFolders\Enum\PrincipalType;
use OCA\OrganizationFolders\Enum\ResourceMemberPermissionLevel;
use OCA\OrganizationFolders\Model\PrincipalFactory;
class ResourceMemberController extends BaseController {
use Errors;
@ -18,6 +18,7 @@ class ResourceMemberController extends BaseController {
public function __construct(
private ResourceMemberService $service,
private ResourceService $resourceService,
private PrincipalFactory $principalFactory,
private string $userId,
) {
parent::__construct();
@ -46,10 +47,12 @@ class ResourceMemberController extends BaseController {
$this->denyAccessUnlessGranted(['UPDATE_MEMBERS'], $resource);
$principal = $this->principalFactory->buildPrincipal(PrincipalType::fromNameOrValue($principalType), $principalId);
$resourceMember = $this->service->create(
resourceId: $resourceId,
permissionLevel: ResourceMemberPermissionLevel::fromNameOrValue($permissionLevel),
principal: new Principal(PrincipalType::fromNameOrValue($principalType), $principalId),
principal: $principal,
);
return $resourceMember;