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

Для управления правами создаётся Роль – сущность, определяющая доступность тех или иных элементов интерфейса. Пользователи программы перед началом работы проходят процедуру аутентификации и авторизации.  Для этого за каждым пользователем закрепляется его учетная запись, в которой хранится логин (имя пользователя), пароль (ключ для аутентификации пользователя) и роль (для авторизации). 

Аутентифика́ция (англ. authentication) — процедура проверки подлинности, в нашем случае это проверка подлинности пользователя путём сравнения введённого им пароля (для указанного логина) с паролем, сохранённым в базе данных.

Авториза́ция (англ. authorization) — предоставление определённому лицу или группе лиц прав на выполнение определённых действий, в нашем случае – предоставление доступа к компонентам интерфейса.

Имеющаяся в My Visual Database система управления доступом предполагает, что её настройку будет производить разработчик.

После включения системы управления доступом у всех визуальных компонент появится группа свойств Roles, перечень которых приводится в таблице 1.

Таблица 1. Свойства группы Roles

НазваниеНазначениеКраткое описание
RolesСписок ролейСписок ролей, имеющих полный доступ к данному компоненту. Если список пуст, до доступ имеют все роли.
BehaviorПоведениеОпределяет, каким образом будет осуществляться ограничение доступа к данному компоненту. Подробнее см. таблицу 2. Сценарии ограничения доступа и таблицу 3. Компоненты и доступные сценарии
MessageСообщениеТекст сообщения, которое показывается пользователю, не имеющему права доступа к данному компоненту
DataFilterФильтр данныхМеханизм фильтрации данных по ролям для табличного представления и для выпадающего списка.

Таблица 2. Сценарии ограничения доступа. 

СценарийНазначениеКраткое описание
DisabledСделать недоступнымКомпонент будет видимым, но неактивным
HideСкрытьКомпонент будет невидимым
ShowMessageПоказать сообщениеКомпонент будет видимым и активным. Если пользователь не имеет доступа к данной кнопке, вместо выполнения действия или скрипта, пользователь получит сообщение, которое указано в свойство “Message”. Если в свойстве “Message”, не указан текст сообщения, будет выведено сообщение по-умолчанию “Доступ запрещен”.
ReadOnlyТолько для чтения

Таблица 3. Компоненты и доступные сценарии. 

КомпонентDisabledHideShowMessageReadOnly
КнопкаrbbDisabledrbbHiderbbShowMessage
Текстовое полеribDisabledribHideribReadOnly
Многострочное поле вводаribDisabledribHideribReadOnly
Расширенный текстовый редакторribDisabledribHideribReadOnly
Статический текстrsbDisabledrsbHide
Выпадающий списокrsbDisabledrsbHide
ЧекбоксrsbDisabledrsbHide
Выбор датыrsbDisabledrsbHide
Изображение в БДrsbDisabledrsbHide
Файл в БДrsbDisabledrsbHide
КалендарьrsbDisabledrsbHide
ТаблицаrsbDisabledrsbHide
ДеревоrsbDisabledrsbHide
СчётчикrsbDisabledrsbHide
ПанельrsbDisabledrsbHide
ГруппаrsbDisabledrsbHide
ВкладкиrsbDisabledrsbHide
КартаrsbDisabledrsbHide
ИзображениеrsbDisabledrsbHide

Настройка ролей

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

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

Поставьте галочку “Включить управление доступом”, затем создайте необходимые роли.

Автоматически будут созданы две таблицы в базе данных: “_user” и “_role”. Данные таблицы являются системными и, как правило, вам не придется взаимодействовать с этими таблицы БД напрямую. Вы можете удалить эти таблицы только после того, как отключите Управление доступом для вашего проекта.

☝ Роли хранятся в фале tables.ini, в секции [_mvd_roles], поэтому не пытайтесь создавать таблицу с названием _mvd_roles, это приведет к недоразумениям. Хотя система разрешит вам создать такую таблицу, но после перезагрузки проекта эта таблица исчезнет из списка таблиц, а в списке ролей добавятся созданные вами поля.

Настройка интерфейса

После того, как вы создали роли, вы можете приступить к настройке интерфейса вашего проекта. Для этого у каждого компонента теперь доступен раздел “Roles”.

Настройка доступа для компонента “Кнопка”

В свойстве компонента “Roles”, выбираем роли. Таким образом, только пользователи принадлежащие к одной из этих ролей, смогут иметь доступ к данному компоненту. Если роли для компонента не выбраны, тогда доступ к данному компоненту будут иметь все пользователи без каких либо ограничений.

Также вы можете выбрать, каким образом ограничивать доступ к компоненту, за это отвечает свойство “Behavior”, доступны следующие варианты:

rbbDisabled – компонент будет видимым, но неактивным

rbbHide – компонент будет невидимым

rbbShowMessage – компонент будет активным. Если пользователь не имеет доступа к данной кнопке, вместо выполнения действия или скрипта, пользователь получит сообщение, которое указано в свойство “Message”. Если в свойстве “Message”, не указан текст сообщения, будет выведено сообщение по умолчанию “Доступ запрещен”.

Настройка остальных компонентов

Настройка остальных компонентов аналогична, но не все сценарии будут доступны, см. Таблица 3. Компоненты и доступные сценарии.

Настройка колонок в компоненте “Таблица” 

В зависимости от роли пользователя, вы можете скрыть колонки в данном компоненте.

Просто выберите роли, для которых данная колонка будет доступна, если ни одна роль не выбрана, значит колонка будет доступна для всех пользователей.

Из выпадающего списка “Поведение”, вы можете выбрать значение “Только чтение”. В этом случае колонка не будет скрыта, но если для данного компонента задействована возможность редактирования данных (свойство “Editable”), для данной колонки будет отключена возможность редактирования данных для пользователей, которые не обладают необходимой ролью.

Ограничение доступа к информации

Вы можете в компонентах Таблица (Table Grid) и Выпадающий список (Combobox) скрыть записи, которые не должен видеть пользователь.

Для этого в свойстве компонента “Roles” предусмотрен подраздел “Data Filter”, в котором для каждой роли вы можете написать условие для фильтрации записей. Синтаксис условия аналогичен синтаксису языка запросов SQL в секции WHERE

Пример:

Допустим у вас база данных документов, каждому документу присваивается его важность: “Высокая”, “Средняя”, “Низкая”. Сделаем так, чтобы:

  • пользователь с ролью “User” мог видеть документы только с важностью “Низкая”
  • пользователь с ролью “Manager”, будет видеть документы с важностью “Средняя” и “Низкая”
  • пользователь с ролью “Director” будет видеть все документы

Так выглядить структура база данных документов и данные в них.

Соответственно настройка компонента “Таблица” будет выглядеть так:

Допустим и такой вариант настройки

Но он обладает рядом недостатков:

1. Поле “level.name” обязательно должно присутствовать в настройках компонента “Таблица”

2. При изменении названия важности, например с “Низкая” на “Низкий”, вам необходимо будет исправлять условие.

3. Будет работать медленнее.

Пользователи с ролью “Director” могут видеть все документы, поэтому условие для фильтрации данных отсутствует.

Настройка компонента “Выпадающий список” производится аналогично.

Создание пользователей

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

При первом запуске вашего проекта, автоматически создается пользователь с правами администратора, который имеет имя пользователя: admin, пароль: admin (не забудьте изменить пароль).

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

Создание пользователей происходит в запущеном проекте, через меню “Инструменты” > “Пользователи”, данное меню доступно только для пользователей с правами администратора.

Для создания нового пользователя, нажмите кнопку “Создать”.

Создавая пользователя, не забывайте выбрать его роль, тем самым определяя его возможности по взаимодействию с вашей программой.

КомпонентТип данныхПримечание
Имя пользователяТекстЛогин
Change passwordКнопкаПри нажатии этой кнопки становятся доступными поля для ввода пароля
ПарольТекст
Пароль (ещё раз)ТекстПароль нужно ввести дважды
РольВыпадающий список
ФамилияТекст
ИмяТекст
E-mailТекст
АдминистраторФлагЭтот флаг открывает пользователю доступ к администрированию пользователей.
АктивныйФлагЕсли снять этот флаг, то учетная запись отключается.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *