- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/handlers.php
- Класс: CIntranetEventHandlers
- Вызов: CIntranetEventHandlers::OnAfterUserUpdate
static function OnAfterUserUpdate(&$fields)
{
if(array_key_exists('UF_DEPARTMENT', $fields))
{
if(
is_array(self::$userDepartmentCache[$fields['ID']])
&& (
array_diff($fields['UF_DEPARTMENT'], self::$userDepartmentCache[$fields['ID']])
|| count($fields['UF_DEPARTMENT']) !== count(self::$userDepartmentCache[$fields['ID']])
)
)
{
$event = new Event("intranet", "onEmployeeDepartmentsChanged", array(
'userId' => $fields['ID'],
'oldDepartmentList' => self::$userDepartmentCache[$fields['ID']],
'newDepartmentList' => $fields['UF_DEPARTMENT']
));
$event->send();
if (defined('BX_COMP_MANAGED_CACHE'))
{
global $CACHE_MANAGER;
$CACHE_MANAGER->ClearByTag('intranet_department_structure');
}
}
if (
$fields['ID'] > 0
&& isset($fields['UF_DEPARTMENT'])
&& is_array($fields['UF_DEPARTMENT'])
&& !empty($fields['UF_DEPARTMENT'][0])
&& isset($fields['ACTIVE'])
&& $fields['ACTIVE'] === 'Y'
&& (
!isset($fields['EXTERNAL_AUTH_ID'])
|| !in_array($fields['EXTERNAL_AUTH_ID'], BitrixMainUserTable::getExternalUserTypes())
)
&& (
!is_array(self::$userDepartmentCache[$fields['ID']])
|| !self::$userDepartmentCache[$fields['ID']][0]
|| self::$userActiveCache === 'N'
)
&& !defined('INTR_SKIP_EVENT_ADD')
&& !IsModuleInstalled('bitrix24')
)
{
CIntranetNotify::NewUserMessage($fields['ID']);
}
}
}