• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/access/voteaccesscontroller.php
  • Класс: BitrixSocialnetworkAccessVoteAccessController
  • Вызов: VoteAccessController::filterUsers
public function filterUsers(array $userIds): array
{
	if (!$this->isExtranetUser($this->userId))
	{
		return $userIds;
	}

	$userIds = array_map(function($el) {
		return (int) $el;
	}, $userIds);

	$userGroups = $this->getUserGroups();
	if (empty($userGroups))
	{
		return [];
	}

	$chunks = array_chunk($userIds, self::STEP_LIMIT);

	$result = [];
	foreach ($chunks as $chunk)
	{
		$groupUsers = UserToGroupTable::getList([
			'select' => ['USER_ID'],
			'filter' => [
				'@USER_ID' => $chunk,
				'@GROUP_ID' => $userGroups,
				'@ROLE' => UserToGroupTable::getRolesMember(),
			],
		])->fetchAll();
		$groupUsers = array_column($groupUsers, 'USER_ID');
		$groupUsers = array_intersect($userIds, $groupUsers);

		$result = array_merge($result, $groupUsers);
	}

	return array_unique($result);
}