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

@ -11,6 +11,7 @@ use OCA\OrganizationFolders\Service\ResourceService;
use OCA\OrganizationFolders\Service\ResourceMemberService;
use OCA\OrganizationFolders\OrganizationProvider\OrganizationProviderManager;
use OCA\OrganizationFolders\Interface\TableSerializable;
use OCA\OrganizationFolders\Model\PrincipalFactory;
abstract class BaseCommand extends Base {
@ -21,6 +22,7 @@ abstract class BaseCommand extends Base {
protected readonly ResourceService $resourceService,
protected readonly ResourceMemberService $resourceMemberService,
protected readonly OrganizationProviderManager $organizationProviderManager,
protected readonly PrincipalFactory $principalFactory,
) {
parent::__construct();
}

View file

@ -31,11 +31,13 @@ class CreateOrganizationFolderMember extends BaseCommand {
$principalType = PrincipalType::fromNameOrValue($input->getOption('principal-type'));
$principalId = $input->getOption('principal-id');
$principal = $this->principalFactory->buildPrincipal($principalType, $principalId);
try {
$member = $this->organizationFolderMemberService->create(
organizationFolderId: $organizationFolderId,
permissionLevel: $permissionLevel,
principal: new Principal($principalType, $principalId),
principal: $principal,
);
$this->writeTableInOutputFormat($input, $output, [$this->formatTableSerializable($member)]);

View file

@ -31,11 +31,13 @@ class CreateResourceMember extends BaseCommand {
$principalType = PrincipalType::fromNameOrValue($input->getOption('principal-type'));
$principalId = $input->getOption('principal-id');
$principal = $this->principalFactory->buildPrincipal($principalType, $principalId);
try {
$member = $this->resourceMemberService->create(
resourceId: $resourceId,
permissionLevel: $permissionLevel,
principal: new Principal($principalType, $principalId),
principal: $principal,
);
$this->writeTableInOutputFormat($input, $output, [$this->formatTableSerializable($member)]);