• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/handlers.php
  • Класс: CIntranetEventHandlers
  • Вызов: CIntranetEventHandlers::OnAfterUserAdd
static function OnAfterUserAdd($arUser)
{
	static $processedIdListIblock = [];

	if (
		isset($arUser['ID'])
		&& $arUser['ID'] > 0
		&& $arUser['ACTIVE'] === 'Y'
		&& empty($arUser['CONFIRM_CODE'])
		&& (
			!isset($arUser['EXTERNAL_AUTH_ID'])
			|| !in_array($arUser['EXTERNAL_AUTH_ID'], BitrixMainUserTable::getExternalUserTypes())
		)
		&& !defined('INTR_SKIP_EVENT_ADD')
		&& ($IBLOCK_ID = COption::GetOptionInt('intranet', 'iblock_state_history', ''))
		&& !in_array($arUser['ID'], $processedIdListIblock)
	)
	{
		static $ACCEPTED_ENUM_ID = null;

		if (null == $ACCEPTED_ENUM_ID)
		{
			$dbRes = CIBlockPropertyEnum::GetList(
				array('id' => 'asc'),
				array(
					'IBLOCK_ID' => $IBLOCK_ID,
					'CODE' => 'STATE',
					'XML_ID' => 'ACCEPTED'
				)
			);

			if ($arRes = $dbRes->Fetch())
			{
				$ACCEPTED_ENUM_ID = $arRes['ID'];
			}
		}

		$arFields = array(
			'IBLOCK_ID' => $IBLOCK_ID,
			'NAME' => GetMessage('INTR_HIRED').' - '.trim($arUser['LAST_NAME'].' '.$arUser['NAME']),
			'ACTIVE' => 'Y',
			'DATE_ACTIVE_FROM' => ConvertTimeStamp(),
			'PREVIEW_TEXT' => GetMessage('INTR_HIRED'),

			'PROPERTY_VALUES' => array(
				'USER' => $arUser['ID'],
				'DEPARTMENT' => $arUser['UF_DEPARTMENT'],
				'POST' => $arUser['WORK_POSITION'] ? $arUser['WORK_POSITION'] : $arUser['PERSONAL_PROFESSION'],
				'STATE' => $ACCEPTED_ENUM_ID
			),
		);

		$obIB = new CIBlockElement();
		$obIB->Add($arFields);

		if (!IsModuleInstalled('bitrix24'))
		{
			CIntranetNotify::NewUserMessage($arUser['ID']);
		}

		$processedIdListIblock[] = $arUser['ID'];
	}
}