# Настройка оповещений и блокировок пользователей

Инструмент позволяет отправлять пользователям информационные сообщения и ограничивать доступ к приложениям. В зависимости от выбранного типа настройка работает как оповещение или как блокировка.

Инструмент может использоваться в следующих случаях:

- Информирование пользователей о технических работах и других важных событиях.
- Предварительное оповещение о предстоящей блокировке.
- Временное ограничение доступа к приложению.
- Ограничение доступа для отдельных пользователей, ролей, профилей или приложений.

Настройка доступна в разделе `Настройки системы > Настройки и сервисы > Настройка оповещений/блокировки пользователей`.

**Общая схема работы:**

1. Создайте объект настройки.
2. Заполните код, наименование и тип объекта.
3. Заполните параметры настройки в зависимости от выбранного типа объекта.
4. Запустите настройку с помощью действия **«Выполнить»**.

Поле **«Тип объекта»** определяет режим работы настройки:
- **Оповещение** — используется для отправки информационного сообщения пользователю.
- **Блокировка** — используется для ограничения доступа к приложению.

## Основные параметры настройки

В карточке объекта задаются основные параметры настройки и доступны вкладки для выбора пользователей, ролей, профилей и приложений.

![block](/service/img_serv/block.png)

### Параметры карточки

- **Для всех пользователей** — если параметр включен, настройка применяется ко всем пользователям системы. Если параметр выключен, настройка действует только для пользователей, ролей и профилей, указанных на вкладках **«Список пользователей»**, **«Список ролей»** и **«Список профилей»**.
- **Для всех приложений** — если параметр включен, настройка действует для всех приложений. Если параметр выключен, настройка применяется только к приложениям, указанным на вкладке **«Список приложений»**.
- **Немедленно** — если параметр включен, настройка активируется сразу после выполнения. Если параметр выключен, система планирует отложенное выполнение.
- **Дата начала** — дата и время начала действия настройки. Для отложенного запуска это время активации настройки.
- **Дата окончания** — дата и время, после которых настройка автоматически перестает действовать.
- **Текст оповещения** — текст сообщения, которое пользователь увидит в оповещении.

### Списки пользователей, ролей и профилей

На вкладках **«Список пользователей»**, **«Список ролей»** и **«Список профилей»** указываются пользователи, роли и профили, на которые распространяется действие настройки.

Эти вкладки используются, если выключен параметр **«Для всех пользователей»**.

### Список приложений

На вкладке **«Список приложений»** указываются приложения, для которых действует настройка.

Эта вкладка используется, если выключен параметр **«Для всех приложений»**.

## Оповещение

Оповещение используется для отправки пользователям информационных сообщений через RabbitMQ. Это обычное уведомление, которое пользователь видит в приложении.

Если пользователь находится в системе в момент активации настройки, он получит сообщение сразу. Если пользователь в этот момент не работает в системе, он увидит сообщение при следующем входе в приложение, но только если на этот момент оповещение еще действует. Чтобы увидеть сообщение, пользователь должен войти в систему в период действия оповещения.

Сообщение показывается пользователю один раз в рамках одного запуска настройки.

Для оповещения используются основные параметры настройки.

## Блокировка

Блокировка используется для ограничения доступа пользователей к приложению. Она запрещает вход в приложения, указанные в настройке.

Если на пользователя действует блокировка, пользователь не сможет войти в приложение. Текст блокировки отображается только при попытке входа в систему. Блокировка действует до даты окончания настройки или до ручного отключения.

Для блокировки используются основные параметры настройки и дополнительные параметры:

- **Текст блокировки** — текст, который пользователь увидит при попытке входа в заблокированное приложение.
- **Показать уведомление** — включает информационное оповещение для пользователя.
- **Количество минут до старта, когда нужно показать уведомление** — определяет, за сколько минут до начала блокировки пользователь получит информационное оповещение.
- **Закрыть сессию** — закрывает активные сессии пользователей в момент начала действия блокировки.

### Информационное оповещение при блокировке

При блокировке можно дополнительно настроить информационное оповещение для пользователей. Для этого включите параметр **«Показать уведомление»** и заполните поля **«Текст оповещения»** и **«Количество минут до старта, когда нужно показать уведомление»**.

Если блокировка запускается на определенную дату и время, и при этом включено информационное оповещение, система планирует две фоновые задачи:
- первую — для отправки уведомления;
- вторую — для активации блокировки.

```{note}
- Если блокировка запускается немедленно и параметр **«Закрыть сессию»** выключен, информационное оповещение будет отправлено пользователю сразу после запуска настройки.
- Если блокировка запускается немедленно и параметр **«Закрыть сессию»** включен, информационное оповещение не отправляется, так как пользователь не успеет его увидеть. Поэтому параметры **«Немедленно»**, **«Показать уведомление»** и **«Закрыть сессию»** нельзя включить одновременно.
```

### Работа пользователя при блокировке

Поведение пользователя зависит от того, включен ли параметр **«Закрыть сессию»**.

Если параметр **«Закрыть сессию»** включен:
1. Пользователь получает информационное оповещение в момент, определенный настройкой (только при отложенном запуске).
2. В момент начала блокировки система закрывает активную сессию пользователя.
3. Текст блокировки в этот момент не отображается.
4. Увидеть текст блокировки пользователь сможет только при следующей попытке входа, если блокировка еще действует.

Если параметр **«Закрыть сессию»** выключен:
1. Пользователь получает информационное оповещение в момент, определенный настройкой.
2. После наступления времени блокировки текущая сессия продолжает работать.
3. В рамках текущей сессии текст блокировки не отображается.
4. Пользователь может продолжать работу в текущей сессии, пока сам не выйдет из системы.
5. После завершения текущей сессии повторный вход в приложение будет заблокирован, пока блокировка действует.
6. Увидеть текст блокировки пользователь сможет только при следующей попытке входа, если блокировка еще действует.

## Применение настройки

Чтобы применить настройку, запустите ее с помощью действия **«Выполнить»**.

Настройка может запускаться двумя способами:
- **Немедленно** — настройка активируется сразу после выполнения операции. Для оповещения это означает немедленную отправку сообщения. Для блокировки это означает немедленное начало ограничения доступа. Если включен параметр **«Показать уведомление»** и выключен параметр **«Закрыть сессию»**, информационное оповещение будет отправлено сразу. Если включен параметр **«Закрыть сессию»**, активные сессии пользователей будут закрыты сразу.
- **Отложенно** — система планирует выполнение настройки на дату и время, указанные в поле **«Дата начала»**. Если для блокировки включено информационное оповещение, система дополнительно создает отдельную фоновую задачу для отправки уведомления до момента начала блокировки.

## Отключение настройки

Настройка автоматически перестает действовать после наступления даты, указанной в поле **«Дата окончания»**.

Настройку можно отключить вручную. Для этого выполните в карточке операцию **«Отключить настройку»**. После этого настройка перейдет в состояние **«Отменено»**.

Чтобы вернуть настройку в исходное состояние, выполните операцию **«Откатить настройку в начальное состояние»**. После этого настройка снова перейдет в состояние **«Формируется»**, и ее можно будет повторно запустить.