diff --git a/src/FieldPermissions.php b/src/FieldPermissions.php index 4c4a33a336590fc7da5c84404cdd6176bfec3f48..df171f460d3f5c97ba5dca6241c87a7f5f2d22db 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 ad8af51466b4616e70069e3d07c3b2536359a9c1..56a3bea1040605617e9076d394fc205ed7d72b34 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); }