3namespace Bitrix\Im\V2\Controller\Filter;
6use Bitrix\Im\V2\Chat\ChatError;
7use Bitrix\Im\V2\Chat\PrivateChat;
8use Bitrix\Im\V2\Message\Delete\DisappearService;
9use Bitrix\Im\V2\Message\MessageError;
10use Bitrix\Main\Engine\ActionFilter\Base;
11use Bitrix\Main\Engine\Response\Converter;
13use Bitrix\Main\EventResult;
18 private string $actionName;
22 parent::__construct();
23 $this->actionName = $actionName;
28 $arguments = $this->
getAction()->getArguments();
29 $chat = $arguments[
'chat'];
31 if (!$chat instanceof
Chat)
35 return new EventResult(EventResult::ERROR,
null,
null, $this);
38 $result = $this->canPost($chat);
43 return new EventResult(EventResult::ERROR,
null,
null, $this);
46 if (!$chat->checkAllowedAction(
'SEND'))
50 'It is forbidden to send messages to this chat'
53 return new EventResult(EventResult::ERROR,
null,
null, $this);
59 private function canPost(
Chat $chat): bool
66 return $chat->canDo($this->actionName);
__construct(string $actionName)
onBeforeAction(Event $event)