h1. Ролевой доступ Система *Smartswitch* позволяет пользователям системы иметь ролевой доступ к веб-интерфейсу. Это означает, что администратор системы может определить *роли*, которые определяет степень видимости элементов системы. Структура ролей описана в разделе [[Роли]]. !roles2.gif! Каждая _роль_ является набором настроек, определяющих: * видимость определенных элементов веб-интерейса * доступность операций в базе данных (выборка, вставка, удаление) Таким образом, вы можете создать свои _роли_ и в них определять часть интерфейса системы, доступную _пользователям_. При добавлении веб-доступа для _пользователей_ вам потребуется указать _роль_ для каждого из них. Когда созданный _пользователь_ зайдет в систему - он увидит только то, что вы определили для него. Это служит базовой концепцией для создания [[Виртуальная АТС|Виртуальных АТС]] и [[Дилер|Дилерского доступа]] к системе. Для определения областей видимости в _ролях_ используются _ACL_ (Access Control List). _ACL_ есть 3х типов: * +Кабинетный ACL+. Определяет зону видимости элементов веб-интерфейса кабинета. Например, видимые меню на главной странице. * +ACL базы данных+. Определяет доступные операции на таблицах базы данных. * +ACL обработчика вызовов+. Определяет доступные элементы в [[Обработчик вызовов|Обработчике вызовов]] _Кабинетный ACL_ имеет больший приоритет, чем _ACL базы данных_. Заблокировав элемент в _Кабинетном ACL_ он перестает быть видимым в меню веб-интерфейса и вы вообще не сможете в него зайти. Однако, заблокировав элемент на выборку в _ACL базы данных_, который открыт в _Кабинетный ACL_, он остается видимым в меню, однако система отображает ошибку при попытке доступа или изменения (в зависимости от настроек доступа). Значения по умолчанию для _ACL базы данных_ находятся во вкладке _База данных_ в _роли_. Значения по умолчанию для _кабинетного ACL_ находятся во вкладке _Кабинет_ в _роли_. В меню _кабинетный ACL/ACL базы данных_ вы можете переопределить параметры доступа для каждой таблицы/пункта меню. Таким образом, Вы можете настраивать роли 2-мя путями: # заблокировать все по умолчанию и разблокировать по одной таблице/пункту меню через меню _кабинетный ACL/ACL базы данных_ # разблокировать все по умолчанию и блокировать по одной таблице/пункту меню через меню _кабинетный ACL/ACL базы данных_ Выбор подходящего метода зависит от того, хотите ли вы бОльшую часть отрыть или скрыть. Каждый объект (каждая строка) в базе данных имеет идентификатор связанного *ответственного пользователя*. При создании нового объекта (новой строки) этот идентификатор устанавливаются в идентификатор пользователя, который создает этот объект. Значение каждой опции см. в разделе [[Роли]]. [[Role-based access|English translation]]