11use CSocNetUserToGroup;
15 private function addMembers(
19 ?
string $initiatedByType,
27 return $handlerResult;
30 $handlerResult->setGroupChanged();
36 'GROUP_ID' => $groupId,
41 'INITIATED_BY_USER_ID' => $initiatorId,
44 $result = CSocNetUserToGroup::Add(
$user,
true,
true,
true);
47 $handlerResult->addApplicationError();
51 return $handlerResult;
54 private function deleteMembers(
int $groupId,
int...$members): HandlerResult
56 $handlerResult =
new HandlerResult();
60 return $handlerResult;
63 $relations = UserToGroupTable::query()
65 ->where(
'GROUP_ID', $groupId)
66 ->whereIn(
'USER_ID', $members)
70 $relations = array_column($relations,
'ID');
72 foreach ($relations as $relationId)
74 $result = CSocNetUserToGroup::Delete($relationId,
false,
true,
true,
true);
77 $handlerResult->addApplicationError();
81 return $handlerResult;
90 return $handlerResult;
93 $invitationService = ServiceLocator::getInstance()->get(
'socialnetwork.collab.invitation.service');
95 $handlerResult->setGroupChanged();
101 'GROUP_ID' => $groupId,
102 'ROLE' => UserRole::REQUEST,
112 $handlerResult->addApplicationError();
118 ->setCollabId($groupId)
122 $invitationResult = $invitationService->send($command);
124 $handlerResult->merge($invitationResult);
127 return $handlerResult;
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static Add($arFields, bool $skipCheckFields=false, bool $skipStatistics=false, bool $delayEvents=false)