- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/rest.php
- Класс: CSocNetLogRestService
- Вызов: CSocNetLogRestService::deleteGroupUsers
static function deleteGroupUsers($arFields): array
{
$groupId = $arFields['GROUP_ID'] ?? null;
$userIdList = $arFields['USER_ID'] ?? null;
if ((int)$groupId <= 0)
{
throw new ArgumentException('Wrong group ID');
}
if (!self::isCurrentUserAdmin())
{
throw new AccessDeniedException('No permissions to update users role');
}
if (
(!is_array($userIdList) && (int)$userIdList <= 0)
|| (is_array($userIdList) && count($userIdList) <= 0)
)
{
throw new ArgumentException('Wrong user IDs');
}
if (!is_array($userIdList))
{
$userIdList = [ $userIdList ];
}
$res = CSocNetGroup::getList(
[],
[
'ID' => $groupId,
],
false,
false,
[ 'SCRUM_MASTER_ID' ]
);
$groupFields = $res->fetch();
if (!is_array($groupFields))
{
throw new ObjectNotFoundException('Socialnetwork group not found');
}
$successUserId = [];
$resRelation = UserToGroupTable::getList(array(
'filter' => array(
'GROUP_ID' => $groupId,
'@USER_ID' => $userIdList
),
'select' => array('ID', 'USER_ID', 'ROLE')
));
while ($relation = $resRelation->fetch())
{
if ($relation['ROLE'] === UserToGroupTable::ROLE_OWNER)
{
continue;
}
if ((int)$groupFields['SCRUM_MASTER_ID'] === (int)$relation['USER_ID'])
{
continue;
}
if (CSocNetUserToGroup::delete($relation['ID']))
{
$successUserId[] = $relation['USER_ID'];
}
}
return $successUserId;
}