From b334ec4323b45115af6123e283284faa978b4139 Mon Sep 17 00:00:00 2001 From: Nazariy Velychenko Date: Fri, 24 Jul 2020 10:33:41 +0300 Subject: [PATCH] OI-74: Implemented hook_entity_access instead of changing access handler. --- modules/openideal_idea/openideal_idea.module | 12 ++++---- ...nidealGroupContentAccessControlHandler.php | 29 ------------------- 2 files changed, 7 insertions(+), 34 deletions(-) delete mode 100644 modules/openideal_idea/src/Plugin/OpenidealGroupContentAccessControlHandler.php diff --git a/modules/openideal_idea/openideal_idea.module b/modules/openideal_idea/openideal_idea.module index 1c1fd0c52..11187da1e 100644 --- a/modules/openideal_idea/openideal_idea.module +++ b/modules/openideal_idea/openideal_idea.module @@ -16,7 +16,6 @@ use Drupal\Core\Url; use Drupal\node\NodeInterface; use Drupal\openideal_idea\ComputedNumberList; use Drupal\openideal_idea\Form\OpenidealBaseRatingForm; -use Drupal\openideal_idea\Plugin\OpenidealGroupContentAccessControlHandler as GroupContentAccessHandle; /** * Implements hook_theme(). @@ -287,9 +286,12 @@ function openideal_idea_entity_type_build(array &$entity_types) { } /** - * Implements hook_group_content_info_alter(). + * Implements hook_ENTITY_TYPE_access(). */ -function openideal_idea_group_content_info_alter(&$info) { - // Alter the content enabler plugin definitions to use our class. - $info['group_membership']['handlers']['access'] = GroupContentAccessHandle::class; +function openideal_idea_group_content_access(EntityInterface $entity, $operation, AccountInterface $account) { + if ($entity->getOwnerId() === $account->id() + && $operation == 'delete' + && $entity->getContentPlugin()->getPluginId() == 'group_membership') { + return AccessResult::forbidden(); + } } diff --git a/modules/openideal_idea/src/Plugin/OpenidealGroupContentAccessControlHandler.php b/modules/openideal_idea/src/Plugin/OpenidealGroupContentAccessControlHandler.php deleted file mode 100644 index b3b7ac4c3..000000000 --- a/modules/openideal_idea/src/Plugin/OpenidealGroupContentAccessControlHandler.php +++ /dev/null @@ -1,29 +0,0 @@ -getOwnerId() === $account->id(); - if ($is_owner && $operation == 'delete') { - return AccessResult::forbidden(); - } - - return parent::relationAccess($group_content, $operation, $account, $return_as_object); - } - -}