- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/update/chatconfigconverter.php
- Класс: BitrixImUpdateChatConfigConverter
- Вызов: ChatConfigConverter::createPersonalPreset
private function createPersonalPreset($userId, $notifySettings, $generalSettings, $defaultGroupId): void
{
$userGroupId =
OptionGroupTable::add([
'USER_ID' => $userId,
'SORT' => Configuration::USER_PRESET_SORT,
'CREATE_BY_ID' => 0
])
->getId()
;
$isSettingsChanged = false;
try
{
if (!empty($generalSettings))
{
$generalSettings = $this->convertGeneralSettings($generalSettings);
$row =
StatusTable::query()
->addSelect('STATUS')
->where('USER_ID', $userId)
->fetch()
;
if ($row)
{
$generalSettings['status'] = $row['STATUS'];
}
General::setSettings($userGroupId, $generalSettings);
if ($generalSettings['notifyScheme'] === 'simple' || empty($notifySettings))
{
$notifySettings = Notification::getSimpleNotifySettings($generalSettings);
}
else
{
$notifySettings = $this->convertNotifySettings($notifySettings);
}
Notification::setSettings($userGroupId, $notifySettings);
$isSettingsChanged = true;
}
}
catch (Exception $exception) {}
OptionUserTable::add([
'USER_ID' => $userId,
'NOTIFY_GROUP_ID' => $isSettingsChanged ? $userGroupId : $defaultGroupId,
'GENERAL_GROUP_ID' => $isSettingsChanged ? $userGroupId : $defaultGroupId
]);
OptionAccessTable::add([
'GROUP_ID' => $userGroupId,
'ACCESS_CODE' => 'U' . $userId
]);
}