Синхронизация прав доступа
Бизнес-требования
Необходимо настроить выдачу прав на проектные формы ввода данных на уровне доступов к потокам.
- Права выдаются сразу на все проекты в потоке.
- При изменении прав в проекте необходимо отправлять в DIS запрос на сохранение прав пользователя к таблицам проекта.
- При переходе в DIS отдаются логин и хэшированный пароль пользователя.
Решение
Интерфейс
Расположение:
Менеджер проектов → Поток → Вкладка "Доступы"
Добавляется новый раздел с доступами в таблице:
- Название раздела – "Работа с формами ввода"
- Раздел содержит в себе 3 столбца (названия иконками) с чекбоксами:
- Просмотреть форму ввода
- Ввести данные в форму ввода
- Редактировать форму ввода
- При наведении на иконки в заголовке столбца появляется название столбца
Добавляется новый раздел в модальном окне добавления прав доступа:
- Название раздела – "Работа с формами ввода"
- Раздел содержит в себе 3 чекбокса:
- Просмотреть форму ввода
- Ввести данные в форму ввода
- Редактировать форму ввода
Пользовательская логика
Аналогична выбору любых других прав доступа
Системная логика (фронтенд)
В запросах на права теперь можно передавать новые права:
- "read_form" для "Просмотреть форму ввода"
- "write_form" для "Ввести данные в форму ввода"
- "change_form" для "Редактировать форму ввода"
Порядок передачи выдачи прав запросами остается без изменений
Системная логика (бэкенд)
Требуется обновить все запросы на права, добавить в них 3 новых права:
- "read_form" для "Просмотреть форму ввода"
- "write_form" для "Ввести данные в форму ввода"
- "change_form" для "Редактировать форму ввода"
При получении запроса с указанными группами прав:
- Вы
зывать функцию на создание hash-паролей – см.тут Выполнять запрос POST {передать данные в DIS для создания там нового пространства для проекта и его системной таблицы} – см. тут- Данные для запросов собираются следующим образом:
- В массив id проектов попадают все id проектов в потоке, к которому настраиваются права доступа
- В массив id пользователей входят пользователи, которым открывается доступ (в т.ч. пользователи в группах, которым открывается доступ)
- Роли берутся из запроса
- Если в таблице-связке с правами есть записи с правами, которые отменены запросом, то необходимо удалить
все записи с hash-паролями, содержащие в себе id этого пользователях
