- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_settings.php
- Класс: CIMSettings
- Вызов: CIMSettings::GetNotifyAccess
static function GetNotifyAccess($userId, $moduleId, $eventId, $clientId)
{
$userId = intval($userId);
if ($userId <= 0 || $moduleId == '' || $eventId == '' || $clientId == '')
{
return false;
}
if (Manager::isSettingsMigrated() || Manager::isUserMigrated($userId))
{
$clientId = $clientId === self::CLIENT_MAIL ? Notification::MAIL : $clientId;
return Manager::getNotifyAccess($userId, $moduleId, $eventId, $clientId);
}
$notifySettingName = $clientId.'|'.$moduleId.'|'.$eventId;
$userSettings = self::Get($userId);
if ($userSettings['settings']['notifyScheme'] === 'simple')
{
if ($clientId === self::CLIENT_SITE && !$userSettings['settings']['notifySchemeSendSite'])
{
return false;
}
if ($clientId === self::CLIENT_XMPP && !$userSettings['settings']['notifySchemeSendXmpp'])
{
return false;
}
if ($clientId === self::CLIENT_MAIL && !$userSettings['settings']['notifySchemeSendEmail'])
{
return false;
}
if ($clientId === self::CLIENT_PUSH && !$userSettings['settings']['notifySchemeSendPush'])
{
return false;
}
return
isset($userSettings['notify'])
&& array_key_exists($notifySettingName, $userSettings['notify'])
&& $userSettings['notify'][$notifySettingName] === false
? false
: true;
}
else
{
if (isset($userSettings['notify']) && array_key_exists($notifySettingName, $userSettings['notify']))
{
return $userSettings['notify'][$notifySettingName];
}
if (isset($userSettings['notify']) && array_key_exists($clientId.'|im|default', $userSettings['notify']))
{
return $userSettings['notify'][$clientId.'|im|default'];
}
}
return false;
}