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

Деталка пользователя#

Макет

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

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

  • Отображается:
  • активна:
    • в стаусах ACTIVE, INVITED
    • и в режиме просмотра и в режиме редактирования
  • При нажатии:
    • пользователю уходит письмо как при приглашении нового пользователя
    • отображается оповещение об успешной отправке
    • если возникала ошибка при отправке, то отображается сообщение с технической ошибкой

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

user.schema.json

Статус
Атрибут объекта user.status
  • Недоступно для редактирования.
Фамилия
Атрибут объекта: user.lastName
  • Обязательно к заполнению.
  • Максимальная длина: 50 символов.
  • Маска ввода: русские и латинские буквы, пробелы, дефисы.
Имя
Атрибут объекта: user.firstName
  • Обязательно к заполнению.
  • Максимальная длина: 50 символов.
  • Маска ввода: русские и латинские буквы, пробелы, дефисы.
Отчество
Атрибут объекта: user.patronymic
  • Необязательно к заполнению.
  • Максимальная длина: 50 символов.
  • Маска ввода: русские и латинские буквы, пробелы, дефисы.
E-mail
Атрибут объекта: user.email
  • Обязательно к заполнению.
  • Максимальная длина 256 символов
  • Уникальное. Текст ошибки если при сохранении проверка на уникальность не выполняется: Пользователь уже приглашён
  • формат соответствует паттерну в модели. Текст ошибки если не соответствует Некорректный email
Телефон
Атрибут объекта: user.phone
  • Обязательно к заполнению.
  • Маска ввода номера мобильного телефона РФ +7 9XX XXX-XX-XX. Текст ошибки если не соответствует Некорректный номер
  • Если пользователь вставляет номер телефона из буфера (copy-past), система вставляет только 9 цифр справа.

Список связанных сущностей#

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

  • Отображается в деталке пользователя с ролью PARTNER, при наличии связанных партнеров (см. Пользователи партнера)
  • Если строки отсутствуют, заголовок таблицы не отображается
  • строки в таблице недоступны для изменения
Поле таблицы Атрибут объекта
Партнер partner.name
Статус partner.status

Список связанных Клиентов#

  • Отображается в деталке пользователя с ролью CUSTOMER, при наличии связанных клиентов (см. Пользователи клиента)
  • Если строки отсутствуют, заголовок таблицы не отображается
  • строки в таблице недоступны для изменения
  • Сортировка по полю Клиент (по отображаемому названию) по алфавиту
  • если дателаку смотрит пользователь с ролью PARTNER, то в списке видит только тех клиентов, которе связаны с партнером смотрящего пользователя
Поле таблицы Атрибут объекта
Клиент - для ЮЛ: customer.company.name
- для ФЛ: customer.person.fio
- для ИП: ИП {customer.person.fio}
Статус customer.status

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

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

Просмотр доступен:

  • деталки пользователя с ролью PARTNER
  • деталки пользователя с ролью CUSTOMER
    • пользователям с правом VIEW_USER_CUSTOMER_ALL - всех пользователей-клиентов
    • пользователям с правом VIEW_USER_CUSTOMER
      • и ролью PARTNER в деталках "своих" пользователей-клиентов (связанных с клиентом, у которого указан партнер такой же, как связанный с текущим пользователем-партнером)

Деталка открывается в режиме просмотра:

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

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

  • Отображается:
    • в деталке пользователя с ролью PARTNER
    • в деталке пользователя с ролью CUSTOMER
      • пользователям с правом EDIT_USER_CUSTOMER_ALL - в деталках всех пользователей-клиентов
      • пользователям с правом EDIT_USER_CUSTOMER
        • и ролью PARTNER в деталках "своих" пользователей-клиентов (связанных с клиентом, у которого указан партнер такой же, как связанный с текущим пользователем-партнером)
    • если статус user.status = ACTIVE или INVITED
    • если форма в режиме просмотра
  • При нажатии на кнопку:
    • становятся доступны для изменения все поля
    • отображаются кнопки Отменить и Сохранить:

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

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

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

  • Активна если изменено хотя бы одно поле
  • При нажатии пользователем на кнопку, система:
    • в процессе сохранения на кнопке отображает лоадер, все поля и кнопки формы заблокированы
    • проверяет заполненность обязательных полей
      • если проверка не выполнена, запись не сохраняется, обязательные незаполненные поля подсвечиваются
    • выполняет проверки:
      • формат e-mail
      • формат номера
      • уникальность e-mail пользователя
      • Если проверки не выполняются, под соответствующим полем отображется текст с ошибкой (см. описание полей)
    • сохраняет запись в БД
    • создает событие аудита USER_EDITED
    • переводит форму в режим просмотра
    • показывает оповещение
    • если статус INVITED, отправляется повторно сообщение с приглашением:

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

Кнопка Заблокировать

  • Отображается:

    • в деталке пользователя с ролью PARTNER
    • в деталке пользователя с ролью CUSTOMER
      • пользователям с правом EDIT_USER_CUSTOMER_ALL - в деталках всех пользователей-клиентов
      • пользователям с правом EDIT_USER_CUSTOMER
        • и ролью PARTNER в деталках "своих" пользователей-клиентов
    • если статус user.status = ACTIVE или INVITED
    • если форма в режиме просмотра
  • При нажатии на кнопку:

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

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

  • Отображается:

    • в деталке пользователя с ролью PARTNER
    • в деталке пользователя с ролью CUSTOMER
      • пользователям с правом EDIT_USER_CUSTOMER_ALL - в деталках всех пользователей-клиентов
      • пользователям с правом EDIT_USER_CUSTOMER
        • и ролью PARTNER в деталках "своих" пользователей-клиентов
    • если статус user.status = INACTIVE
    • если форма в режиме просмотра
  • При нажатии на кнопку

    • в процессе обработки отображается лоадер на кнопке, все поля и кнопки на форме недоступны
    • обновляется статус на user.status = возвращается предыдущий статус из user.statusPrevious
    • создаетсяя событие аудита USER_UNBLOCKED
    • если разблокируемый пользователь связан с клиентом, и у клиента ещё нет ни одного договора, то система создаем договор как при принятии приглашения пользователем
    • отображается новый статус на форме
    • скрывается кнопка Разблокировать
    • показывается оповещение