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

Деталка партнера#

Макет

Ссылка возврата на список партнеров#

Аналогично ссылке возврата в деталке клиента

Закладка "Информация"#

Мэппинг полей#

На закладке отображается информация о партнере.

partner.schema.json

Статус
Атрибут объекта partner.status
  • Недоступно для редактирования.
Название
Атрибут объекта partner.name
  • Обязательно к заполнению.
  • Максимальная длина 500 символов
  • Разрешены для ввода любые символы
  • Уникальное. Текст ошибки, если при сохранении проверка на уникальность не выполняется: Партнёр уже добавлен

Просмотр и редактирование партнера#

Режим просмотра партнера#

Просмотр деталки партнера доступен пользователю с правом VIEW_PARTNER_ALL

Режим редактирования партнера#

Кнопка Редактировать в деталке партнера

  • Отображается:
    • пользователям с правом CREATE_PARTNER
    • если статус partner.status = ACTIVE
    • если форма в режиме просмотра
  • При нажатии на кнопку:
    • становятся доступны для изменения все поля
    • отображаются кнопки Отменить и Сохранить:

Кнопка Отменить

  • Активна всегда
  • При нажатии:
    • сбрасывает внесенные изменения в поля партнера
    • переводит форму в режим просмотра

Кнопка Сохранить

  • Активна если изменено хотя бы одно поле
  • При нажатии пользователем на кнопку, система:

Блокировка и разблокировка партнера#

Кнопка Заблокировать в деталке отображается:

При нажатии на кнопку:

  • в процессе обработки отображается лоадер на кнопке, все поля и кнопки на форме недоступны (на всех вкладках)
  • обновляется статус на partner.status = INACTIVE
  • создаетсяя событие аудита PARTNER_BLOCKED
  • отображается новый статус на форме
  • блокируются все привязанные к партнеру пользователи (с записью о их блокировке в события аудита)
  • скрывается кнопка Заблокировать
  • показывается оповещение

Кнопка Разблокировать отображается:

При нажатии на кнопку:

  • в процессе обработки отображается лоадер на кнопке, все поля и кнопки на форме недоступны (на всех вкладках)
  • обновляется статус на partner.status = ACTIVE,
  • создаетсяя событие аудита PARTNER_UNBLOCKED
  • отображается новый статус на форме
  • разблокируются все привязанные к партнеру пользователи (с записью о их разблокировке в события аудита)
  • скрывается кнопка Разблокировать
  • показывается оповещение

Закладка "Пользователи"#

Мэппинг полей#

На закладке отображается информация о пользователях партнера:

user.schema.json

Поле таблицы Атрибут объекта
E-mail user.email
Телефон user.phone
Статус user.status

Сортировка по полю E-mail (по алфавиту). Отображается списком без пагинации

Если у пользователя нет прав на добавление CREATE_PARTNER и в таблице нет записей, то пустая закладка Пользователи не отображается макет

Добавление пользователя#

Можно пригласить нового пользователя или прикрепить незаблокированного существующего, который не привязан ни к одному партнеру/клиенту/агенту/пользователю

  • Кнопка + Добавить
  • При нажатии на кнопку + Добавить, открывается модальное окно с полями для ввода
  • модалка не закрывается по клику на фон (только крестиком или кнопками Отменить, Добавить)
E-mail
Атрибут объекта: user.email
  • Обязательное
  • Максимальная длина 256 символов
  • при вводе e-mail (потеря фокуса поля), если введен валидный e-mail, система выполняет проверку, существует ли уже пользователь с таким e-mail:
    • Во время обработки все поля и кнопки формы неактивны.
    • если существует:
      • в поле Телефон отображается номер найденного пользователя
      • поле Телефон становится недоступным для изменения
Телефон
Атрибут объекта: user.phone
  • Обязательно к заполнению.
  • Маска ввода номера мобильного телефона РФ +7 9XX XXX-XX-XX

Если пользователь вставляет номер телефона из буфера (copy-past), система вставляет только 9 цифр справа.

Фамилия
Атрибут объекта: user.lastName
  • Необязательно к заполнению.
  • Максимальная длина: 50 символов.
  • Маска ввода: русские и латинские буквы, пробелы, дефисы.
Имя
Атрибут объекта: user.firstName
  • Необязательно к заполнению.
  • Максимальная длина: 50 символов.
  • Маска ввода: русские и латинские буквы, пробелы, дефисы.
Отчество
Атрибут объекта: user.patronymic
  • Необязательно к заполнению.
  • Максимальная длина: 50 символов.
  • Маска ввода: русские и латинские буквы, пробелы, дефисы.

Кнопка Отменить

  • Активна всегда
  • При нажатии пользователем на кнопку, система:
    • закрывает окно без дополнительных подтверждений
    • запись не сохраняется в БД

Кнопка Добавить

Проверки при сохранении пользователя#

1.К партнеру можно добавить:

  • нового пользователя (пользователя с таким e-mail не существует в системе)
  • существующего пользователя, который не привязан к какому-либо партнеру/клиенту/агенту/сотруднику.

Если условия не выполняются, под полем E-mail отображается сообщение об ошибке: Пользователь уже приглашён

2.Если пользователь существует, не привязан к какому-либо партнеру/клиенту/агенту/сотруднику, то он не должен быть заблокирован.

Если условия не выполняются, под полем E-mail отображается сообщение об ошибке: Пользователь заблокирован

3.E-mail должен соответствовать паттерну указанному в модели, Если не соответствует, под полем E-mail отображается сообщение об ошибке: Некорректный e-mail

4.Телефон должен соответствовать маске (см описание поля)
Если не соответствует, под полем Телефон отображается сообщение об ошибке: Некорректный номер

Сохранение пользователя#

  • Если привязывается существующий пользователь к партнеру, то система обновляет привязанного пользователя в БД.
  • Если создается новый, то создает нового в БД и в Keycloak

кроме указанных на форме значений, система сохраняет:

  • user.type = PARTNER
  • user.role = PARTNER
  • user.status =
    • если добавлен новый пользователь - INVITED,
    • если добавлен существующий - оставляет без изменений
  • user.parnter = ссылка на партнера к которому привязывается пользователь
  • user.name = partner.name

Отправка письма пользователю#

Журнал событий#

Система создает события аудита:

  • USER_INVITED - при добавлении нового пользователя
  • USER_LINKED - при привязке существующего пользователя

Отвязывание пользователя#

Кнопка отвязывания в строках пользователей:

  • отображается пользователю с правом CREATE_PARTNER
  • неактивна, если партнер заблокирован
  • при наведении курсора отображается подсказка Отвязать пользователя
  • При нажатии пользователем, система:
    • отображает диалоговое окно для подтверждения пользователем (макет)
      • если пользователь отказался, диалоговое окно закрывается без изменений.
    • система отвязывает пользователя от партнера user.parnter = null
    • создает событие журнала аудита USER_UNLINKED
    • показывает обновленный список пользователей партнера