Перейти к содержанию

Процесс блокировки/разблокировки клиента#

Пользователи процесса#

  • пользователь с ролью CONTRACTOR.
  • пользователь с ролью ADMINISTRATOR.
  • пользователь с ролью PARTNER.

Предусловия#

Точки входа#

  • Кнопка "Заблокировать" в карточке клиента
  • Кнопка "Разблокировать" в карточке клиента

Варианты завершения#

  • Для не заблокированного клиента статус изменился на Заблокирован
  • Для заблокированного клиента статус изменился на тот, который был до блокировки

Процесс#

Общий вид#

# Шаг
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
    • показывает обновленную форму клиента
    • показывает оповещение