Задача [0202, часть 4]: Интерфейс пользователя для настроек привилегий

Формулировка проблемы: необходимо реализовать интерфейс для настройки привилегий, настраиваемых суперметодологом и суперадминистратором для локальных методологов и администраторов, а также для их последующей работы с объектами конфигурации.

Используется: Конфигуратор, Административное приложение.

Решение: необходимо реализовать два различных типа интерфейса:

Интерфейс пользователя для манипуляций привилегиями суперметодологом/суперадмином

Создание, изменение и удаление привилегий осуществляется через аналогичный интерфейс, расположение которого зависит от типа объекта конфигурации:

  • Конфигуратор → Настройки системы → Доступ к объектам конфигурации

  • Административное приложение → Настройки системы → Доступ к объектам конфигурации

Интерфейс представляет собой экран с таблицей объектов конфигурации, к которым можно настроить доступ:

  • В конфигураторе:

    • Формы

    • Реестры

    • Папки

    • Группы

  • В административном приложении:

    • Группы

    • Орг. структура

При двойном клике на элемент списка отображается экран, разделённый на две области:

  • навигатор - содержит дерево имеющихся объектов конфигурации;

  • основная рабочая область - содержит таблицу по настройке привилегий и также кнопки "Назад" и "Сохранить".

Навигатор

Данная область содержит в себе дерево объектов конфигурации в зависимости от выбранного типа объекта. По умолчанию дерево развернуто.

В качестве корневого элемента отображается название типа объекта, но внутрення его структура зависит от типа объекта конфигурации:

  • формы, реестры, группы - само дерево отображает плоский список доступных объектов;

  • папки, орг. структура - дерево может иметь множество корней, отображающих все иерархические объекты наивысшего уровня, доступные пользователю (аналогично веткам мероприятий в модуле "Проекты" в основном приложении).

Если количество объектов конфигурации такое, что не помещается в навигаторе полностью, необходимо отображать вертикальный скролл. Если название объектов такое, что не отображается в ширине навигатора, необходимо отображать горизонтальный скролл.

Основная рабочая область

Таблица в основной области подраздела содержит кнопки "Добавить группу" и "Сохранить", а также таблицу манипуляций с правами.

Таблица манипуляций с правами. Данная таблица содержит следующие столбцы:

  • "Группы" - содержит список групп, имеющих права на выбранный объект конфигурации;

  • "Чтение";

  • "Изменение";

  • "Назначение прав";

  • "Назначение/удаление" (только для объекта типа "Орг. структура").

Столбцы, отличные от столбца "Группы", содержат флажки, определяющие наличие права для указанных групп. Эти права наследуются для иерархических объектов.

Флажок "Чтение" будет отображаться активным, если будет являться единственным включенным. При включении любого флажка, отличного от данного, он будет отображаться включенным и неактивным.

По клику правой кнопкой мыши по строке таблицы отобразится контекстное меню с пунктом "Удалить". По выбору этого пункта отобразится диалоговое окно с кнопками "Ок" и "Отмена" и текстом сообщения:

При удалении группы её пользователи более не будут иметь права на данный объект. Вы действительно хотите продолжить?

В зависимости от выбранной кнопки необходимо:

  • "Ок" - удалять данную группу из таблицы и закрывать окно;

  • "Отмена" - закрывать окно без удаления группы.

Также таблица имеет название в формате:

Назначение прав для %название_объекта%

Кнопка "Добавить группу". По нажатию на кнопку необходимо отображать компонент выбора служебных групп. Компонент содержит дерево всех служебных групп, настроенных в системе, а также на кнопку "Выбрать".

Рисунок 263. Диалог добавления группы

Диалог добавления группы

При выборе группы необходимо добавлять ее в конец таблицы для выбранного объекта. При этом включенным по умолчанию будет только флажок для права "Чтение".

При выборе уже имеющейся в таблицы группы необходимо отображать ошибку с текстом:

Данной группе уже назначены права для этого объекта

Если количество групп в компоненте такое, что не помещается в нем полностью, необходимо отображать вертикальный скролл. Если название групп такое, что не отображается в ширине компонента, необходимо отображать горизонтальный скролл.

Кнопка "Сохранить". По нажатию на кнопку необходимо сохранять изменения для выделенного объекта.

Если для какой-то группы выключены все флажки, то при сохранении измененных привилегий данные группы более не будут отображаться.

По нажатию на:

  • кнопку "Назад";

  • иной объект в навигаторе;

без предварительного сохранения необходимо отображать диалоговое окно с кнопками "Ок" и "Отмена" и следующим текстом:

"Все несохраненные данные будут удалены. Вы действительно хотите продолжить?"

  • "Ок" - осуществлять выбранное действие с удалением всех изменений в текущей сессии;

  • "Отмена" - осуществлять выбранное действие с сохранением изменений в текущей сессии.

По нажатию на кнопку "На главную" описанное выше поведение не распространяется. По возвращению в подраздел будет отображаться тот же экран с несохраненными значениями, что и до перемещения на главную страницу конфигуратора.

Интерфейс пользователя для настройки объектов конфигурации локальными методологом/админом

Для локальных методологов и администраторов будут отображаться текущие Конфигуратор и Административное приложение (соответственно), за исключением того, что видимыми в них остаются только те разделы, к объектам которых имеется доступ.

Форматирование

Размеры компонентов:

  • Интерфейс настроек привилегий:

    • ширина навигатора - 282 px;

    • ширина столбцов с флажками - 176 px;

  • Диалог добавления группы:

    • размер диалога - 402*512 px;

    • отступы сверху и снизу кнопки "Готово" - 20 px.

Действия при обновлении системы

При обновлении системы необходимо добавить два новых раздела в Конфигуратор и Административное приложение, причем для всех объектов конфигурации содержимое таблицы должно быть пустым. Других видимых изменений быть не должно.

Рисунок 264. Доступ к объектам конфигурации типа "Папки" (Конфигуратор)

Доступ к объектам конфигурации типа "Папки" (Конфигуратор)

Рисунок 265. Новая настройка Конфигуратора "Доступ к объектам конфигурации"

Новая настройка Конфигуратора "Доступ к объектам конфигурации"

Рисунок 266. Новая настройка Административного приложения "Доступ к объектам конфигурации"

Новая настройка Административного приложения "Доступ к объектам конфигурации"

Рисунок 267. Доступ к объектам конфигурации (Конфигуратор)

Доступ к объектам конфигурации (Конфигуратор)

Рисунок 268. Доступ к объектам конфигурации (Административное приложение)

Доступ к объектам конфигурации (Административное приложение)

Рисунок 269. Конфигуратор для методолога, имеющего доступ только к объектам типа "Формы" и "Реестры"

Конфигуратор для методолога, имеющего доступ только к объектам типа "Формы" и "Реестры"