1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
UpdateInviteHandler.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
6
8use Bitrix\Socialnetwork\Collab\Control\Handler\Trait\AddMemberLogTrait;
11use Bitrix\Socialnetwork\Control\Member\Trait\AddMemberTrait;
12use Bitrix\Socialnetwork\Control\Member\Trait\GetMembersTrait;
20
22{
23 use GetMembersTrait;
24 use AddMemberTrait;
25 use AddMemberLogTrait;
26
27 public function update(UpdateCommand $command, Workgroup $entityBefore, Workgroup $entityAfter): HandlerResult
28 {
29 $handlerResult = new HandlerResult();
30
31 $invitedMembers = $command->getAddInvitedMembers();
32 if (empty($invitedMembers))
33 {
34 return $handlerResult;
35 }
36
37 $membersByCommand = (new AccessCodeConverter(...$invitedMembers))
38 ->getUsers()
39 ->getUserIds()
40 ;
41
42 $add = array_diff($membersByCommand, $this->getMemberIds($command->getId()));
43
44 [$employeeIds, $guestIds] = EmployeeProvider::getInstance()->splitIntoEmployeesAndGuests($add);
45
46 $handlerResult = $this->inviteMembers(
47 $command->getId(),
48 $command->getInitiatorId(),
49 ...$add
50 );
51
52 if (!$handlerResult->isSuccess())
53 {
54 return $handlerResult;
55 }
56
57 foreach ($add as $userId)
58 {
59 LastActivityTrigger::execute($userId, $command->getId());
60 }
61
62 $parameters = [
63 'skipChat' => !$command->getInitiator()->isIntranet(),
64 ];
65
66 ActionMessageBuffer::getInstance()
67 ->put(ActionType::InviteGuest, $command->getId(), $command->getInitiatorId(), $guestIds, $parameters)
68 ->put(ActionType::InviteUser, $command->getId(), $command->getInitiatorId(), $employeeIds, $parameters);
69
70 $writeToLogResult = $this->writeAddMemberLog(
71 $add,
72 $command->getId(),
73 $command->getInitiatorId(),
75 );
76
77 return $handlerResult->merge($writeToLogResult);
78 }
79}
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
update(UpdateCommand $command, Workgroup $entityBefore, Workgroup $entityAfter)
Определения UpdateInviteHandler.php:27