From 345f379650a6ae7ab813d387d432de118ab88faf Mon Sep 17 00:00:00 2001 From: Julie Lenaerts Date: Tue, 2 Jul 2024 15:39:31 +0200 Subject: [PATCH] Implement StoredObject permissions WOPI AuthorizationManager.php --- .../src/Service/Wopi/AuthorizationManager.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Bundle/ChillWopiBundle/src/Service/Wopi/AuthorizationManager.php b/src/Bundle/ChillWopiBundle/src/Service/Wopi/AuthorizationManager.php index 9ed421461..9b70ea049 100644 --- a/src/Bundle/ChillWopiBundle/src/Service/Wopi/AuthorizationManager.php +++ b/src/Bundle/ChillWopiBundle/src/Service/Wopi/AuthorizationManager.php @@ -12,6 +12,7 @@ declare(strict_types=1); namespace Chill\WopiBundle\Service\Wopi; use ChampsLibres\WopiLib\Contract\Entity\Document; +use Chill\DocStoreBundle\Security\Authorization\StoredObjectRoleEnum; use Chill\MainBundle\Entity\User; use Lexik\Bundle\JWTAuthenticationBundle\Services\JWTTokenManagerInterface; use Psr\Http\Message\RequestInterface; @@ -60,12 +61,17 @@ class AuthorizationManager implements \ChampsLibres\WopiBundle\Contracts\Authori public function userCanPresent(string $accessToken, Document $document, RequestInterface $request): bool { - return $this->isTokenValid($accessToken, $document, $request); + if ($this->security->isGranted(StoredObjectRoleEnum::SEE->value, $document)) { + + return $this->isTokenValid($accessToken, $document, $request); + } + + return false; } public function userCanRead(string $accessToken, Document $document, RequestInterface $request): bool { - if ($this->security->isGranted('SEE', $document)) { + if ($this->security->isGranted(StoredObjectRoleEnum::SEE->value, $document)) { return $this->isTokenValid($accessToken, $document, $request); } @@ -79,7 +85,7 @@ class AuthorizationManager implements \ChampsLibres\WopiBundle\Contracts\Authori public function userCanWrite(string $accessToken, Document $document, RequestInterface $request): bool { - if ($this->security->isGranted('EDIT', $document)) { + if ($this->security->isGranted(StoredObjectRoleEnum::EDIT->value, $document)) { return $this->isTokenValid($accessToken, $document, $request); }