• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/item/usertogroup.php
  • Класс: BitrixSocialnetworkItemUserToGroup
  • Вызов: UserToGroup::onAfterUserAdd
static function onAfterUserAdd(&$fields): void
{
	if (
		$fields['ID'] <= 0
		|| (
			isset($fields['ACTIVE'])
			&& $fields['ACTIVE'] !== 'Y'
		)
		|| !self::checkUF()
	)
	{
		return;
	}

	$deparmentIdList = [];
	if (
		isset($fields['UF_DEPARTMENT'])
		&& is_array($fields['UF_DEPARTMENT'])
		&& (int)$fields['UF_DEPARTMENT'][0] > 0
	)
	{
		$deparmentIdList = $fields['UF_DEPARTMENT'];
	}

	if (Loader::includeModule('intranet'))
	{
		$deparmentIdList = array_merge($deparmentIdList, CIntranetUtils::getSubordinateDepartments($fields['ID'], false));
	}

	$deparmentIdList = array_unique($deparmentIdList);

	if (
		empty($deparmentIdList)
		|| !ModuleManager::isModuleInstalled('intranet')
		|| !Loader::includeModule('iblock')
	)
	{
		return;
	}

	$groupList = self::getConnectedGroups($deparmentIdList);
	if (empty($groupList))
	{
		return;
	}

	foreach($groupList as $groupId)
	{
		self::addRelationAutoMembership([
			'USER_ID' => $fields['ID'],
			'GROUP_ID' => $groupId,
			'NOTIFY' => 'N',
		]);
	}
}