Процесс блокировки/разблокировки клиента#
Пользователи процесса#
- пользователь с ролью CONTRACTOR.
- пользователь с ролью ADMINISTRATOR.
- пользователь с ролью PARTNER.
Предусловия#
- У роли пользователя есть право EDIT_CUSTOMER_ALL или EDIT_CUSTOMER
- Клиент заведен в систему
Точки входа#
- Кнопка "Заблокировать" в карточке клиента
- Кнопка "Разблокировать" в карточке клиента
Варианты завершения#
- Для не заблокированного клиента статус изменился на
Заблокирован - Для заблокированного клиента статус изменился на тот, который был до блокировки
Процесс#
Общий вид#
| # | Шаг |
|---|---|
| 1 | Пользователь открывает форму клиента на просмотр. |
| 2 | Пользователь нажимает кнопку Заблокировать. |
| 2а | Если клиент уже заблокирован, пользователь нажимает кнопку Разблокировать. |
| 2б | Система возвращает клиенту предыдущий статус, снимает блокировку в keycloak |
| 3 | Система сохраняет предыдущий статус и меняет текущий на Заблокирован, блокирует в keycloak. |
| 4 | Система записывает в журнал событие блокировки/разблокировки |
| 5 | Система показывает форму клиента в режиме просмотра с новым статусом. |
Интерфейс#
Статус клиента#
В режиме просмотра система отображает статус клиента
- Статус
- Атрибут объекта:
customer.status
- Недоступен для редактирования
Кнопка заблокировать#
- отображается:
- в режиме просмотра
- в статусе
Активен - пользователю с правом EDIT_CUSTOMER_ALL в карточках всех клиентов
- пользователю с правом EDIT_CUSTOMER:
- ролью PARTNER только в карточках "своих" клиентов (связанных с тем-же партнером, с которым связан пользователь-партнер)
- при нажатии пользователем на кнопку, система:
- показывает лоадер на кнопке, блокирует все поля на форме
- обновляет поля:
customer.status=INACTIVE - для связанного пользователя:
- если у пользователя есть другие связанные активные клиенты: не меняет статус
- если у пользователя нет других связанных активных клиентов: блокирует пользователя (с запоминанием предыдущего статуса и записью события в журнал аудита)
- создает журнал событий аудита CUSTOMER_BLOCKED
- показывает обновленную форму клиента
- показывает оповещение
Кнопка разблокировать#
- отображается:
- в статусе
Заблокирован - пользователю с правом EDIT_CUSTOMER_ALL в карточках всех клиентов
- пользователю с правом EDIT_CUSTOMER:
- ролью PARTNER только в карточках "своих" клиентов (связанных с тем-же партнером, с которым связан пользователь-партнер)
- в статусе
- при нажатии пользователем на кнопку, система:
- показывает лоадер на кнопке, блокирует все поля на форме
- система обновляет значения:
customer.status=ACTIVE - для связанного пользователя:
- если пользователь заблокирован, разблокирует его (с восстановлением предыдущего статуса и записью события в журнал аудита)
- создает журнал событий аудита CUSTOMER_UNBLOCKED
- показывает обновленную форму клиента
- показывает оповещение