Skip to content

Commit

Permalink
Merge pull request #2611 from dpfaffenbauer/issue/2608
Browse files Browse the repository at this point in the history
[MessengerBundle] add permission and check for permissions
  • Loading branch information
dpfaffenbauer committed Apr 21, 2024
2 parents e9b9498 + 1a0e629 commit 796ba5d
Show file tree
Hide file tree
Showing 10 changed files with 97 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php

declare(strict_types=1);

namespace CoreShop\Bundle\CoreBundle\Migrations;

use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
use Pimcore\Model\User\Permission\Definition;

final class Version20240421093551 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}

public function up(Schema $schema): void
{
$permission = Definition::getByKey('coreshop_permission_messenger');

if (null === $permission) {
$permission = new Definition();
$permission->setKey('coreshop_permission_messenger');
$permission->setCategory('coreshop_permission_group_coreshop');
$permission->save();
}
}

public function down(Schema $schema): void
{

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ imports:
- { resource: admin.yml }
- { resource: messenger.yml }

doctrine_migrations:
migrations_paths:
'CoreShop\Bundle\IndexBundle\Migrations': '@CoreShopIndexBundle/Migrations'

pimcore:
objects:
class_definitions:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ class ListMessagesController extends \Pimcore\Bundle\AdminBundle\Controller\Admi
{
public function listReceiverMessageCountAction(ReceiversRepositoryInterface $receiverLocator): Response
{
$this->checkPermission('coreshop_permission_messenger');

$receivers = [];
foreach ($receiverLocator->getReceiversMapping() as $name => $receiver) {
$receivers[] = [
Expand All @@ -44,6 +46,8 @@ public function listReceiverMessageCountAction(ReceiversRepositoryInterface $rec

public function listListableReceiversAction(ReceiversRepositoryInterface $receiverLocator): Response
{
$this->checkPermission('coreshop_permission_messenger');

$receivers = [];
foreach ($receiverLocator->getListableReceiversMapping() as $name => $receiver) {
$receivers[] = [
Expand All @@ -57,6 +61,8 @@ public function listListableReceiversAction(ReceiversRepositoryInterface $receiv

public function listFailureReceiversAction(FailureReceiversRepositoryInterface $failureReceivers): Response
{
$this->checkPermission('coreshop_permission_messenger');

$receivers = [];
foreach ($failureReceivers->getReceiversWithFailureReceivers() as $name) {
$receivers[] = [
Expand All @@ -71,6 +77,8 @@ public function listFailedMessagesAction(
Request $request,
FailedMessageRepositoryInterface $failedMessageRepository,
): Response {
$this->checkPermission('coreshop_permission_messenger');

$receiverName = $request->attributes->get('receiverName');

if (!is_string($receiverName)) {
Expand All @@ -86,6 +94,8 @@ public function listMessagesAction(
Request $request,
MessageRepositoryInterface $messageRepository,
): Response {
$this->checkPermission('coreshop_permission_messenger');

$receiverName = $request->attributes->get('receiverName');

if (!is_string($receiverName)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ class MessageController extends \Pimcore\Bundle\AdminBundle\Controller\AdminCont
{
public function deleteStoredMessageAction(Request $request, FailedMessageRejecter $failedMessageRejecter)
{
$this->checkPermission('coreshop_permission_messenger');

$id = (int) $request->request->get('id');
$receiver = (string) $request->attributes->get('receiverName');

Expand All @@ -40,6 +42,8 @@ public function deleteStoredMessageAction(Request $request, FailedMessageRejecte

public function retryFailedMessageAction(Request $request, FailedMessageRetryer $failedMessageRetryer)
{
$this->checkPermission('coreshop_permission_messenger');

$id = (int) $request->request->get('id');
$receiver = (string) $request->attributes->get('receiverName');

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ private function addPimcoreResourcesSection(ArrayNodeDefinition $node): void
->end()
->scalarNode('permissions')
->cannotBeOverwritten()
->defaultValue(['index', 'filter'])
->defaultValue(['messenger'])
->end()
->end()
->end()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php

declare(strict_types=1);

namespace CoreShop\Bundle\MessengerBundle\Migrations;

use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
use Pimcore\Model\User\Permission\Definition;

final class Version20240421093216 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}

public function up(Schema $schema): void
{
$permission = Definition::getByKey('coreshop_permission_messenger');

if (null === $permission) {
$permission = new Definition();
$permission->setKey('coreshop_permission_messenger');
$permission->setCategory('coreshop_permission_group_coreshop');
$permission->save();
}
}

public function down(Schema $schema): void
{
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
imports:
- { resource: admin.yml }

doctrine_migrations:
migrations_paths:
'CoreShop\Bundle\MessengerBundle\Migrations': '@CoreShopMessengerBundle/Migrations'

framework:
messenger:
buses:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,11 @@ services:
- { name: controller.service_arguments }
calls:
- [setContainer, ['@service_container']]
- [setTokenResolver, ['@Pimcore\Security\User\TokenStorageUserResolver']]

CoreShop\Bundle\MessengerBundle\Controller\MessageController:
tags:
- { name: controller.service_arguments }
calls:
- [setContainer, ['@service_container']]
- [setContainer, ['@service_container']]
- [setTokenResolver, ['@Pimcore\Security\User\TokenStorageUserResolver']]
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ coreshop_messenger_failure_receivers: 'Verfügbare Empfänger'
coreshop_messenger_failed_messages: 'Fehlgeschlagene Nachrichten'
coreshop_messenger_pending_messages: 'Ausstehende Nachrichten'
coreshop_messenger_receivers: 'Empfänger'
coreshop_messenger_info: 'Details'
coreshop_messenger_info: 'Details'
coreshop_permission_messenger: 'CoreShop: Messenger'
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ coreshop_messenger_failure_receivers: 'Available Receivers'
coreshop_messenger_failed_messages: 'Failed Messages'
coreshop_messenger_pending_messages: 'Pending Messages'
coreshop_messenger_receivers: 'Receivers'
coreshop_messenger_info: 'Details'
coreshop_messenger_info: 'Details'
coreshop_permission_messenger: 'CoreShop: Messenger'

0 comments on commit 796ba5d

Please sign in to comment.