Матрица доступа

Матрица доступа Решение «Матрица доступа», поможет вам, в десятки раз, снизить себестоимость разработки, тестирования, отладки, поддержки различных БД, систем, на платформе IBM Lotus Notes/Domino.
ООО «Решительный шаг»

Введение

Решение «Матрица доступа» (МД) предназначено для организаций занимающихся разработкой, технической поддержкой различных систем на платформе Lotus Notes/Domino.

При проектировании баз данных (БД) на Lotus Notes/Domino, приходится осуществлять множество однообразных действий, связанных с разграничением прав доступа в дизайне документа, к различным действиям, в зависимости от:

  • ролей пользователя в БД — настройки ACL
  • ролей пользователя в системе – если существует не одна, а группа БД объединенных в систему и присутствует БД где хранятся роли для каждого из пользователей системы
  • ролей пользователя в документе — определяется наличием Lotus имени пользователя в определенных полях документа
  • состояние документа — состоит из набора статусов документа или одного статуса (Черновик, на разработке, на согласовании, на ознакомлении и т.д.)

При стандартном проектировании дизайна документов, приходится в каждом действии на @Formul-ах прописывать различные условия скрытия, которые и определяют, кто имеет права доступа к действию, кто нет, то есть определяет уровень доступа. Это затрудняет:

  • разработку - приходится писать повторяющиеся условия в разных действиях, разных документах, подформах;
  • тестирование – не прозрачно, кто какими правами должен обладать
  • техническую поддержку — сложно разобраться, кто какими правами на каком этапе обладает;
  • адаптацию БД под заказчика — если возникнет необходимость внести изменения в права доступа к действиям в документах, это может привести к значительным трудозатратам, множеству ошибок, итераций тестирования. В итоге к заказчику уходит версия с ошибками, которые выявляются при реальной работе с БД.
    Как результат, недовольство заказчика.

Представьте, что существует возможность вынести все необходимые проверки по уровню доступа за пределы дизайна документов, подформ, действий. Для последующего изменения прав доступа, нет необходимости менять дизайн документов, подформ, действий в БД. Достаточно внести изменения в «уровень доступа» за пределами дизайна и уровень доступа автоматически изменится.

Решение «Матрица доступа» (МД) призвано решить данную проблему и упростить процесс разработки, поддержки уже разработанных БД, в десятки раз.


1. Возможности

В общем виде, МД представляет собой таблицу с разграничением прав доступа к различным действиям в документе. МД определяет, кто может выполнять то или иное действие в текущем документе в зависимости от различных параметров (см. Таблицу 1).

Таблица 1 - Пример таблицы с уровнем доступа
Действия Состояние Роль БД Роль системы Роль документа
1 Создать   [CreateAppPlan]    
2 Создать   [Admin]    
3 Удалить Черновик [CreateAppPlan] Администратор|Administrator Автор
4 Удалить Черновик [Admin]   Ответственный
5 Отменить На согласовании [DeleteEvent]    
6 Отменить Не согласован [Admin]    

Решение МД, позволяет с помощью визуального интерфейса Lotus Notes/Domino:

  1. создавать таблицу с уровнем доступа;
  2. редактировать уже созданную таблицу;
  3. осуществлять привязку созданной таблицы, к элементам дизайна БД (документы, действия, представления, подформы).

МД встраивается в существующую БД, где появляются необходимые документы, библиотеки, представления для работы с МД, по умолчанию доступные только пользователям с правами «Администратор», «Дизайнер». Изменение МД могут осуществлять только пользователи с правами «Администратор», «Дизайнер».


2. Работа с Матрицей доступа

2.1. Проектирование

Для начала работы с МД, необходимо выполнить проектирование таблицы, с уровнями доступа, для каждого из документов (типов документов) БД (см. Таблица 1).

Этапы проектирования:

  1. Составить необходимые списки для каждого документа:
    1. Список действий — все возможные действия, которые могут быть выполнены в документе, над документом (создать, просмотр, удалить, отменить, редактировать, сохранить, на согласование, согласен, не согласен и т.д.);
    2. Список состояний документа — если статусов документа несколько (полей со статусами документа), под состоянием понимаем совокупность статусов документа, которые при пересечении образуют определенное состояние документа (см. Таблицу 2). Если статус документа один (одно поле где хранятся все статусы документа), то состояние и статус одно и тоже.
    3. Список ролей БД — хранится и задается в ACL текущей БД. Даже если в ACL не задан, необходимо определится с наименованиями ролей.
    4. Список ролей системы — необходим если БД не одна, является одной из БД работающих в системе с единым списком пользователей, где для каждого из пользователей может быть назначена роль системы (Администратор, контроллер, подписант и т.д.).
    5. Список ролей документа — определяется наличием Lotus имен пользователей в полях доступа документа или других признаков (Автор, ответственный, руководство, редакторы, редакторы согласования, редакторы ознакомления, читатели согласования, читатели ознакомления, согласующий, читатели и т.д.)
  2. Сформировать таблицу с уровнями доступа на основании созданных списков (см. Таблицу 1)

Таблица 2 — Состояния документа
Наименование Стадия разработки Статус согласования Статус ознакомления
Состояния \ Name StageEvent StatusApprov StatusAcquaint
Черновик Project NotSendApprov NotSendAcquaint
На согласовании Project OnApproval NotSendAcquaint
Не согласован Project NotApproved NotSendAcquaint
Разработан Approved Approved NotSendAcquaint
Разработан/На ознакомлении Approved Approved OnAcquaint
Разработан/Ознакомились Approved Approved Acquainted
Разработан/Не ознакомились Approved Approved NotAcquainted
Отменено Cancelled Approved  

2.2. Разработка

Для разработки МД, необходимо:

  1. Создать справочник доступа — создается для каждого документа (каждой формы документа) (см. Рисунок 1)
  2. Заполнить справочник доступа — заполняется списками составленными на этапе проектирования (см. Рисунок 1):
    • Список действий — заполняется в ручную
    • Список состояний — заполняется вручную
    • Список ролей базы данных — выбирается из существующих в ACL БД
    • Список ролей системы — заполняется вручную или автоматически в зависимости от необходимости и наличии ролей системы
    • Роли документа — заполняется вручную
  3. Создать и заполнить документы матрицы доступа — документы создаются и заполняются на основании заранее спроектированной таблицы с уровнями доступа (см. Таблица 1) для созданного справочника доступа (см. Рисунок 2, см. Рисунок 3)
  4. Написать формулы расчета — осуществляется непосредственно в карточке справочника доступа (см. Рисунок 4):
    • Состояния документа
    • Ролей документа
  5. Выполнить отладку формул расчет — осуществляется непосредственно в карточке справочника доступа (см. Рисунок 4):
    • Состояния документа
    • Ролей документа
  6. Выполнить отладку расчета действий для документа — осуществляется непосредственно в карточке справочника доступа (см. Рисунок 5)
  7. Добавить в дизайн формы документа, скрытую подформу расчета уровня доступа пользователя к документу
  8. Добавить для всех необходимых действий, элементов дизайна формулу скрытия
  9. Добавить во все необходимые события, функции расчета уровня доступа пользователя к текущему документу
Справочник доступа
Рисунок 1 - Справочник доступа

Заполненный документ матрицы доступа
Рисунок 2 - Созданный, заполненный документ матрицы доступа

Заполненная матрица доступа
Рисунок 3 - Заполненная матрица доступа

Расчет и отладка состояния
Рисунок 4 - Расчет и отладка состояния

Отладка расчета действий
Рисунок 5 - Отладка расчета действий

2.3. Тестирование, отладка

Выполнив все необходимые настройки МД, можно приступать к тестированию:

  1. Создавать, сохранять документы
  2. Отправлять документы по процессу
  3. Заходить в БД под разными пользователями, обладающими различными ролями, на разных уровнях БД
  4. Проверять доступность различных действий
  5. Настраивать матрицу доступа по своему усмотрению

В случае обнаружения не соответствий доступа:

  1. Изменять формулы расчета в справочнике доступа
  2. Отлаживать формулы расчета


Если вы, решили
узнать больше о решении или заказать презентацию
свяжитесь с нами!

E-mail: contact@resolute-step.ru
Телефон: +7 913 5355861

Специалисты ООО «Решительный шаг»
ответят на все ваши вопросы!