# Права доступа

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

Система управления правами доступа к информации включает защиту как на уровне интерфейса приложения, так и на уровне базы данных (БД). Т.е. пользователь при прямом доступе к БД с использованием IDE получает такие же права доступа, как и на уровне интерфейса.

В приложение используется 2 уровня доступа : granted (полный доступ) и guest (гостевой доступ). При полном доступе пользователь может просматривать, добавлять, изменять и удалять информацию. При гостевом доступе пользователю доступен только просмотр информации. Если пользователь не имеет доступа к определенной информации, то соответствующие пункты меню могут быть блокированы (см. далее).

На заметку.
Параметры protection_system и menu_forbidden_lock из Программной настройки приложения определяют необходимость использования системы управления «Правами доступа» и блокировку пунктов меню. Данные параметры для изменения доступны только владельцу базы данных.

### Интерфейс

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

Если у пользователя отсутствует доступ к определенной информации, то соответствующие пункты меню отображаются серым цветом, в интерфейсе кнопки управления блокируются и информация из базы данных не загружается. Параметром menu_forbidden_lock=true можно заблокировать пункт меню; связанный с пунктом меню модуль нельзя будет стартовать, и, соответственно, открыть интерфейсную форму.

Пользователь может иметь полный доступ к одной информации и ограниченный (гостевой) доступ к другой информации. Часть информации может быть пользователю вообще недоступной. Т.е. ограничения доступа к информации могут касаться только определенных направлений. Так, например, менеджер по закупкам, имеющий полные права (granted) на Заказы, может быть «гостем» (guest) в Отделе продаж, а менджер продаж может только просматривать (guest) Заказы. При этом, обоим менеджерам доступ к бухгалтерии блокируется.

### Ролевой механизм

В системе используется ролевой механизм, при котором в БД определяются права доступа к информации. Роли БД регистрируются в системе; с ролями связаны с интерфейсные модули, которые, в свою очередь, включают Серверные объекты БД (таблицы и методы). Таким образом, ролевой механизм интегрирует права доступа к объектам БД с интерфейсными правами доступа.

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

Модуль Справочник ролей позволяет создавать и редактировать роли пользователей БД. Модуль Пользователей системы позволяет назначать сотрудникам определенные роли.

### База данных

На уровне Базы Данных пользователь в качестве гостя (guest) получает доступ к определенной информации только для чтения (выполнения SQL-запросов типа SELECT). Если пользователь имеет полный доступ к информации (granted), то он может выполнять SQL-запросы, связанные с изменением информации (INSERT, UPDATE, DELETE).

Модуль Права доступа позволяет просматривать разрешения (permissions) пользователей на доступ к объектам БД при прямом использованнии серверного IDE.