mirror of
https://github.com/verdigado/organization_folders.git
synced 2024-12-06 11:22:41 +01:00
Added security classes and draft version of ResourceVoter
This commit is contained in:
parent
22c06b5689
commit
88cb258c2b
11 changed files with 428 additions and 0 deletions
62
lib/Controller/ResourceController.php
Normal file
62
lib/Controller/ResourceController.php
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
|
||||
namespace OCA\OrganizationFolders\Controller;
|
||||
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
|
||||
|
||||
use OCA\OrganizationFolders\Service\ResourceService;
|
||||
|
||||
class ResourceController extends BaseController {
|
||||
use Errors;
|
||||
|
||||
public function __construct(
|
||||
private ResourceService $service,
|
||||
private string $userId,
|
||||
) {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
#[NoAdminRequired]
|
||||
public function show(int $resourceId): JSONResponse {
|
||||
return $this->handleNotFound(function () use ($resourceId) {
|
||||
$resource = $this->service->find($resourceId);
|
||||
|
||||
$this->denyAccessUnlessGranted(['READ'], $resource);
|
||||
|
||||
return $resource;
|
||||
});
|
||||
}
|
||||
|
||||
#[NoAdminRequired]
|
||||
public function create(
|
||||
int $organizationFolderId,
|
||||
string $type,
|
||||
string $name,
|
||||
?int $parentResourceId = null,
|
||||
bool $active = true,
|
||||
bool $inheritManagers = true,
|
||||
|
||||
// for type folder
|
||||
?int $membersAclPermission = null,
|
||||
?int $managersAclPermission = null,
|
||||
?int $inheritedAclPermission = null,
|
||||
): JSONResponse {
|
||||
return $this->handleErrors(function () use ($organizationFolderId, $type, $name, $parentResourceId, $active, $inheritManagers, $membersAclPermission, $managersAclPermission, $inheritedAclPermission) {
|
||||
// TODO: check permissions
|
||||
|
||||
return $this->service->create(
|
||||
organizationFolderId: $organizationFolderId,
|
||||
type: $type,
|
||||
name: $name,
|
||||
parentResourceId: $parentResourceId,
|
||||
active: $active,
|
||||
inheritManagers: $inheritManagers,
|
||||
|
||||
membersAclPermission: $membersAclPermission,
|
||||
managersAclPermission: $managersAclPermission,
|
||||
inheritedAclPermission: $inheritedAclPermission,
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue