From 0378bdc42822cac6417ba0dd9f721c30df223e6a Mon Sep 17 00:00:00 2001 From: loze <loze@ilgstudio.com> Date: Fri, 21 Mar 2025 12:57:03 -0700 Subject: [PATCH 1/2] add permission for voting on own content --- src/FieldPermissions.php | 7 +++++++ src/Plugin/VotingApiWidgetBase.php | 3 +++ 2 files changed, 10 insertions(+) diff --git a/src/FieldPermissions.php b/src/FieldPermissions.php index 4c4a33a..df171f4 100644 --- a/src/FieldPermissions.php +++ b/src/FieldPermissions.php @@ -57,6 +57,13 @@ class FieldPermissions implements ContainerInjectionInterface { '@field' => $field_name, ]), ]; + $perms['vote on own ' . $entity_type . ':' . $bundle . ':' . $field_name] = [ + 'title' => $this->t('Vote on own @type content from bundle @bundle in field @field', [ + '@type' => $entity_type, + '@bundle' => $bundle, + '@field' => $field_name, + ]), + ]; $perms['edit own vote on ' . $entity_type . ':' . $bundle . ':' . $field_name] = [ 'title' => $this->t('Edit vote on type @type from bundle @bundle in field @field', [ '@type' => $entity_type, diff --git a/src/Plugin/VotingApiWidgetBase.php b/src/Plugin/VotingApiWidgetBase.php index ad8af51..837ede3 100644 --- a/src/Plugin/VotingApiWidgetBase.php +++ b/src/Plugin/VotingApiWidgetBase.php @@ -179,6 +179,9 @@ abstract class VotingApiWidgetBase extends PluginBase implements VotingApiWidget if (!$vote->isNew()) { $perm = 'edit own vote on ' . $vote->getVotedEntityType() . ':' . $entity->bundle() . ':' . $vote->field_name->value; } + if($account->id() && $entity->getOwnerId() == $account->id()){ + $perm = 'vote on own ' . $vote->getVotedEntityType() . ':' . $entity->bundle() . ':' . $vote->field_name->value; + } return $account->hasPermission($perm); } -- GitLab From bca654e628ce956a7fd6340052e0fcdbdaad805f Mon Sep 17 00:00:00 2001 From: loze <loze@ilgstudio.com> Date: Fri, 21 Mar 2025 14:13:29 -0700 Subject: [PATCH 2/2] phpcs --- src/Plugin/VotingApiWidgetBase.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Plugin/VotingApiWidgetBase.php b/src/Plugin/VotingApiWidgetBase.php index 837ede3..56a3bea 100644 --- a/src/Plugin/VotingApiWidgetBase.php +++ b/src/Plugin/VotingApiWidgetBase.php @@ -179,7 +179,7 @@ abstract class VotingApiWidgetBase extends PluginBase implements VotingApiWidget if (!$vote->isNew()) { $perm = 'edit own vote on ' . $vote->getVotedEntityType() . ':' . $entity->bundle() . ':' . $vote->field_name->value; } - if($account->id() && $entity->getOwnerId() == $account->id()){ + if ($account->id() && $entity->getOwnerId() == $account->id()) { $perm = 'vote on own ' . $vote->getVotedEntityType() . ':' . $entity->bundle() . ':' . $vote->field_name->value; } return $account->hasPermission($perm); -- GitLab