|
5 | 5 | namespace PhpList\RestBundle\Messaging\Controller;
|
6 | 6 |
|
7 | 7 | use OpenApi\Attributes as OA;
|
| 8 | +use PhpList\Core\Domain\Identity\Model\PrivilegeFlag; |
8 | 9 | use PhpList\Core\Domain\Messaging\Model\Filter\MessageFilter;
|
9 | 10 | use PhpList\Core\Domain\Messaging\Model\Message;
|
10 | 11 | use PhpList\Core\Domain\Messaging\Service\MessageManager;
|
@@ -219,6 +220,9 @@ public function getMessage(
|
219 | 220 | public function createMessage(Request $request, MessageNormalizer $normalizer): JsonResponse
|
220 | 221 | {
|
221 | 222 | $authUser = $this->requireAuthentication($request);
|
| 223 | + if (!$authUser->getPrivileges()->has(PrivilegeFlag::Campaigns)) { |
| 224 | + throw $this->createAccessDeniedException('You are not allowed to create campaigns.'); |
| 225 | + } |
222 | 226 |
|
223 | 227 | /** @var CreateMessageRequest $createMessageRequest */
|
224 | 228 | $createMessageRequest = $this->validator->validate($request, CreateMessageRequest::class);
|
@@ -290,6 +294,9 @@ public function updateMessage(
|
290 | 294 | #[MapEntity(mapping: ['messageId' => 'id'])] ?Message $message = null,
|
291 | 295 | ): JsonResponse {
|
292 | 296 | $authUser = $this->requireAuthentication($request);
|
| 297 | + if (!$authUser->getPrivileges()->has(PrivilegeFlag::Campaigns)) { |
| 298 | + throw $this->createAccessDeniedException('You are not allowed to update campaigns.'); |
| 299 | + } |
293 | 300 |
|
294 | 301 | if (!$message) {
|
295 | 302 | throw $this->createNotFoundException('Campaign not found.');
|
@@ -348,7 +355,10 @@ public function deleteMessage(
|
348 | 355 | Request $request,
|
349 | 356 | #[MapEntity(mapping: ['messageId' => 'id'])] ?Message $message = null
|
350 | 357 | ): JsonResponse {
|
351 |
| - $this->requireAuthentication($request); |
| 358 | + $authUser = $this->requireAuthentication($request); |
| 359 | + if (!$authUser->getPrivileges()->has(PrivilegeFlag::Campaigns)) { |
| 360 | + throw $this->createAccessDeniedException('You are not allowed to delete campaigns.'); |
| 361 | + } |
352 | 362 |
|
353 | 363 | if (!$message) {
|
354 | 364 | throw $this->createNotFoundException('Campaign not found.');
|
|
0 commit comments