• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/integration/intranet/user.php
  • Класс: BitrixImIntegrationIntranetUser
  • Вызов: User::onUserAdminRights
static function onUserAdminRights(BitrixMainEvent $event): bool
{
	if (!BitrixMainModuleManager::isModuleInstalled('intranet'))
	{
		return false;
	}

	if (!COption::GetOptionString("im", "general_chat_message_admin_rights", true))
	{
		return false;
	}

	$originatorId = (int)$event->getParameter('originatorId');
	$users = (array)$event->getParameter('userId');
	$type = (string)$event->getParameter('type');

	$users = array_map(function($userId) {
		return self::getUserBlock($userId);
	}, $users);

	$originatorGender = 'M';
	if ($originatorId > 0)
	{
		$dbUser = CUser::GetList('', '', ['ID_EQUAL_EXACT' => $originatorId], array('FIELDS' => ['PERSONAL_GENDER']));
		if ($user = $dbUser->Fetch())
		{
			$originatorGender = $user["PERSONAL_GENDER"] == 'F'? 'F': 'M';
		}
	}

	$messId = (
		$type === 'setAdminRigths'
			? 'IM_INT_USR_SET_ADMIN_RIGTHS_'.$originatorGender
			: 'IM_INT_USR_REMOVE_ADMIN_RIGTHS_'.$originatorGender
	);

	return self::sendMessageToGeneralChat($originatorId, [
		'MESSAGE' => Loc::getMessage($messId, [
			'#USER_NAME#' => self::getUserBlock($originatorId),
			'#USERS#' => implode(', ', $users)
		]),
		'SYSTEM' => 'Y'
	]);

}