From 973a92886bb9bca6c78fe39a9b604a43a18e8f17 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Sat, 17 Apr 2021 13:06:36 +0300 Subject: [PATCH] new acl usage --- .../Espo/Classes/AclPortal/Email/AccessChecker.php | 4 ++-- .../AclPortal/Notification/OwnershipChecker.php} | 11 ++++++----- .../AclPortal/User/OwnershipChecker.php} | 11 ++++++----- .../Espo/Resources/metadata/aclDefs/Notification.json | 3 ++- application/Espo/Resources/metadata/aclDefs/User.json | 3 ++- 5 files changed, 18 insertions(+), 14 deletions(-) rename application/Espo/{AclPortal/Notification.php => Classes/AclPortal/Notification/OwnershipChecker.php} (87%) rename application/Espo/{AclPortal/User.php => Classes/AclPortal/User/OwnershipChecker.php} (87%) diff --git a/application/Espo/Classes/AclPortal/Email/AccessChecker.php b/application/Espo/Classes/AclPortal/Email/AccessChecker.php index bafab21755..37ab239675 100644 --- a/application/Espo/Classes/AclPortal/Email/AccessChecker.php +++ b/application/Espo/Classes/AclPortal/Email/AccessChecker.php @@ -37,12 +37,12 @@ use Espo\Core\{ Portal\AclManager, Acl\Table, Acl\ScopeData, - Acl\AccessEntityCREDChecker, + Acl\AccessEntityCREDSChecker, Portal\Acl\DefaultAccessChecker, Portal\Acl\Traits\DefaultAccessCheckerDependency, }; -class AccessChecker implements AccessEntityCREDChecker +class AccessChecker implements AccessEntityCREDSChecker { use DefaultAccessCheckerDependency; diff --git a/application/Espo/AclPortal/Notification.php b/application/Espo/Classes/AclPortal/Notification/OwnershipChecker.php similarity index 87% rename from application/Espo/AclPortal/Notification.php rename to application/Espo/Classes/AclPortal/Notification/OwnershipChecker.php index fd4ce53ed2..bfac701e37 100644 --- a/application/Espo/AclPortal/Notification.php +++ b/application/Espo/Classes/AclPortal/Notification/OwnershipChecker.php @@ -27,18 +27,19 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\AclPortal; +namespace Espo\Classes\AclPortal\Notification; + +use Espo\Entities\User; -use Espo\Entities\User as EntityUser; use Espo\ORM\Entity; use Espo\Core\{ - AclPortal\Acl as Acl, + Acl\OwnershipOwnChecker, }; -class Notification extends Acl +class OwnershipChecker implements OwnershipOwnChecker { - public function checkIsOwner(EntityUser $user, Entity $entity) + public function checkOwn(User $user, Entity $entity): bool { if ($user->getId() === $entity->get('userId')) { return true; diff --git a/application/Espo/AclPortal/User.php b/application/Espo/Classes/AclPortal/User/OwnershipChecker.php similarity index 87% rename from application/Espo/AclPortal/User.php rename to application/Espo/Classes/AclPortal/User/OwnershipChecker.php index 5990fbf8c9..ea99eb41b3 100644 --- a/application/Espo/AclPortal/User.php +++ b/application/Espo/Classes/AclPortal/User/OwnershipChecker.php @@ -27,18 +27,19 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\AclPortal; +namespace Espo\Classes\AclPortal\User; + +use Espo\Entities\User; use Espo\ORM\Entity; -use Espo\Entities\User as UserEntity; use Espo\Core\{ - AclPortal\Acl as Acl, + Acl\OwnershipOwnChecker, }; -class User extends Acl +class OwnershipChecker implements OwnershipOwnChecker { - public function checkIsOwner(UserEntity $user, Entity $entity) + public function checkOwn(User $user, Entity $entity): bool { return $user->getId() === $entity->getId(); } diff --git a/application/Espo/Resources/metadata/aclDefs/Notification.json b/application/Espo/Resources/metadata/aclDefs/Notification.json index a246ed4f0f..76d3a413eb 100644 --- a/application/Espo/Resources/metadata/aclDefs/Notification.json +++ b/application/Espo/Resources/metadata/aclDefs/Notification.json @@ -1,3 +1,4 @@ { - "ownershipCheckerClassName": "Espo\\Classes\\Acl\\Notification\\OwnershipChecker" + "ownershipCheckerClassName": "Espo\\Classes\\Acl\\Notification\\OwnershipChecker", + "portalOwnershipCheckerClassName": "Espo\\Classes\\AclPortal\\Notification\\OwnershipChecker" } diff --git a/application/Espo/Resources/metadata/aclDefs/User.json b/application/Espo/Resources/metadata/aclDefs/User.json index ef9db91c08..4e0a9d0e28 100644 --- a/application/Espo/Resources/metadata/aclDefs/User.json +++ b/application/Espo/Resources/metadata/aclDefs/User.json @@ -1,4 +1,5 @@ { "accessCheckerClassName": "Espo\\Classes\\Acl\\User\\AccessChecker", - "ownershipCheckerClassName": "Espo\\Classes\\Acl\\User\\OwnershipChecker" + "ownershipCheckerClassName": "Espo\\Classes\\Acl\\User\\OwnershipChecker", + "portalOwnershipCheckerClassName": "Espo\\Classes\\AclPortal\\User\\OwnershipChecker" }