Управление доступом

Назначение

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




Содержание



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

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

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



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



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



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

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

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



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

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

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


Настройка остальных компонентов аналогична, за исключением свойства "Behavior".


Свойство "Behavior" для компонентов:

ribDisabled - компонент будет видимым, но неактивным
ribHide - компонент будет невидимым
ribReadOnly - компонент будет видимым, но изключена возможность для изменения информации в нем. Из компонента можно скопировать текст в буфер обмена.



Свойство "Behavior" для компонентов:

rsbDisabled - компонент будет видимым, но неактивным
rsbHide - компонент будет невидимым






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

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



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






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

Кроме этого, вы можете скрыть записи в компонентах и , которые не должен видеть пользователь.

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


Пример:

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

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




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




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



Но он обладает рядом недостатков:
1. Поле "level.name" обязательно должно присутствовать в настройках компонента "Таблица"
2. При изменении названия важности, например с "Низкая" на "Низкий", вам необходимо будет исправлять условие.
3. Будет работать медленнее.

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

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



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

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

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

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

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



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



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