Профили управления доступом к объектам в любой конфигурации на БСП
В данной статье рассмотрим механизмы стандартного управления профилями доступа к объектам в любой типовой конфигурации, в основе которой лежит БСП.
- Описание
- Подробнее
Описание
Введение
Всем доброго времени суток!
В данной статье я хочу рассмотреть базовый функционал подсистемы "Управление доступом", а именно управление профилями доступа для актуальной на текущий момент библиотеки стандартных подсистем (БСП). На момент написания публикации — версия БСП 3.1.5.208. Тестирование практических примеров осуществляется для Платформе 1с 8.3.19.1264.
Публикация будет полезна всем программистам — разработчикам, а так же желающим познакомиться с основным функционалом подсистемы "Управление доступом" в любой современной типовой конфигурации (работающей на БСП).
Материал статьи разбит на несколько частей с практическими примерами, в которых рассматривается проверка доступности ролей, включение или выключение профилей пользователю, программное создание или обновление профилей базы и прочие интересные моменты использования функционала БСП "управление доступом". Примеры публикации актуальны для серверных и файловых баз.
Перейдем к первой части — проверка наличия ролей и программное добавление профилей пользователю:
Часть 1. Проверка наличия роли и программное добавление профиля пользователю.
Самый базовый метод — проверка, что у пользователя есть роль через Профиль группы доступа, в котором он состоит:
Роль1 = УправлениеДоступом.ЕстьРоль("ДобавлениеИзменениеКурсовВалют",,Справочники.Пользователи.НайтиПоНаименованию("ТестПользователь"));
// истина
Данный код будет возвращать Истину, если у пользователя "ТестПользователь" есть роль "ДобавлениеИзменениеКурсовВалют", которая добавлена через профиль группы доступа пользователя:
Рис.1 Профиль пользователя с ролью "Добавление и изменение курсов валют".
Поскольку наш только созданный тестовый пользователь ТестПользователь не имеет право на вход в базу данных попробуем добавить профиль "Пользователь" пользователю ТестПользователь следующим кодом:
УправлениеДоступом.ВключитьПрофильПользователю(Справочники.Пользователи.НайтиПоНаименованию("ТестПользователь"),Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию("Пользователь"));
Смотрим, профиль добавился:
Рис.2 Добавленный профиль "Пользователь" процедурой ВключитьПрофильПользователю.
Теперь, мы можем зайти в базу данным пользователем:
Рис.3 Зашли тестовым пользователем в базу, при назначенном профиле "Пользователь".
Так же, я могу добавить профиль "Администратор" с ролями "Полные права" и "Администратор системы", т.е. программно с помощью БСП в любой типовой конфигурации я могу "раздавать" полные права.
УправлениеДоступом.ВключитьПрофильПользователю(Справочники.Пользователи.НайтиПоНаименованию("ТестПользователь"),Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию("Администратор"));
Отключение любого профиля у пользователя осуществляется вот таким кодом:
УправлениеДоступом.ВыключитьПрофильПользователю(Справочники.Пользователи.НайтиПоНаименованию("ТестПользователь"),Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию("Администратор"));
Так, с базовым включением/выключением профиля мы разобрались, теперь перейдем ко второй части статьи — программное создание профиля доступа с помощью библиотеки стандартных подсистем.
Часть 2. Программное обновление и создание профиля доступа на БСП.
Данную часть статьи я разобью на два подраздела, в которых проведу некоторые эксперименты для обновления или создания нового профиля доступа.
Подраздел 2.1 Программное обновление поставляемого профиля доступа.
Для подготовки профиля доступа, мы воспользуемся типовым программным конструктором, который предлагается в библиотеке стандартных подсистем. Выглядит это вот так: