1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
InviteLink.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
5namespace Bitrix\Socialnetwork\Collab\Controller;
6
7use Bitrix\Main\Engine\Controller;
8use Bitrix\Main\Engine\CurrentUser;
9use Bitrix\Main\Error;
10use Bitrix\Main\Validation\Engine\AutoWire\ValidationParameter;
11use Bitrix\SocialNetwork\Collab\Access\CollabAccessController;
12use Bitrix\SocialNetwork\Collab\Access\CollabDictionary;
13use Bitrix\Socialnetwork\Collab\Controller\Dto\InviteLinkDto;
14use Bitrix\Socialnetwork\Collab\Controller\Trait\GetCollabIdBySourceTrait;
15use Bitrix\Socialnetwork\Collab\Integration\IM\ActionType;
16use Bitrix\Socialnetwork\Collab\Integration\IM\ActionMessageFactory;
17use Bitrix\Socialnetwork\Internals\Registry\GroupRegistry;
18
20{
21 use GetCollabIdBySourceTrait;
22
25
26 protected int $userId;
27
28 public function getAutoWiredParameters(): array
29 {
30 return [
32 InviteLinkDto::class,
33 function (): InviteLinkDto {
34 $request = $this->getRequest();
35 $requestData = $request->getPostList()->toArray();
36 $requestData['collabId'] = $this->resolveCollabId($request);
37
38 return InviteLinkDto::createFromRequest($requestData);
39 }
40 ),
41 ];
42 }
43
47 public function onCopyAction(InviteLinkDto $dto): ?bool
48 {
49 if (!CollabAccessController::can($this->userId, CollabDictionary::INVITE, $dto->collabId))
50 {
51 $this->addError(new Error('Access denied'));
52
53 return null;
54 }
55
56 $messageId = $this->sendMessage((int)$dto->collabId);
57 if ($messageId === 0)
58 {
59 $this->addError(new Error('Message not sent'));
60
61 return null;
62 }
63
64 return true;
65 }
66
67 protected function sendMessage(int $collabId): int
68 {
69 return
70 $this
71 ->messageFactory
72 ->getActionMessage(ActionType::CopyLink, $collabId, $this->userId)
73 ->send()
74 ;
75 }
76
77 protected function init(): void
78 {
79 parent::init();
80
81 $this->messageFactory = ActionMessageFactory::getInstance();
82 $this->groupRegistry = GroupRegistry::getInstance();
83
84 $this->userId = (int)CurrentUser::get()->getId();
85 }
86}
if(! $messageFields||!isset($messageFields['message_id'])||!isset($messageFields['status'])||!CModule::IncludeModule("messageservice")) $messageId
Определения callback_ismscenter.php:26
if(!Loader::includeModule('catalog')) if(!AccessController::getCurrent() ->check(ActionDictionary::ACTION_PRICE_EDIT)) if(!check_bitrix_sessid()) $request
Определения catalog_reindex.php:36
Определения error.php:15
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804