Implement StoredObject permissions WOPI AuthorizationManager.php

This commit is contained in:
Julie Lenaerts 2024-07-02 15:39:31 +02:00
parent 3262a1dd02
commit 345f379650

View File

@ -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);
}