0
0
Fork 0
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:
Jonathan Treffler 2024-11-06 22:11:16 +01:00
parent 22c06b5689
commit 88cb258c2b
11 changed files with 428 additions and 0 deletions

View file

@ -0,0 +1,40 @@
<?php
namespace OCA\OrganizationFolders\Controller;
use OCA\OrganizationFolders\AppInfo\Application;
use OCA\OrganizationFolders\Errors\AccessDenied;
use OCA\OrganizationFolders\Security\AuthorizationService;
use OCP\AppFramework\Controller;
use OCP\IRequest;
class BaseController extends Controller {
private AuthorizationService $authorizationService;
public function __construct(
) {
parent::__construct(
Application::APP_ID,
\OC::$server->get(IRequest::class),
);
$this->authorizationService = \OC::$server->get(AuthorizationService::class);
}
/**
* Throws an exception unless the attributes are granted for the current authentication user and optionally
* supplied subject.
*
* @param string[] $attributes The attributes
* @param mixed $subject The subject
* @param string[] $attributes Attributes of subject
* @param string $message The message passed to the exception
*
* @throws AccessDenied
*/
protected function denyAccessUnlessGranted(array $attributes, $subject, $message = 'Access Denied.') {
if (!$this->authorizationService->isGranted($attributes, $subject)) {
throw new AccessDenied($message);
}
}
}