Каталог решений - Профили управления доступом к объектам в любой конфигурации на БСП

Профили управления доступом к объектам в любой конфигурации на БСП

Профили управления доступом к объектам в любой конфигурации на БСП

В наличии

В данной статье рассмотрим механизмы стандартного управления профилями доступа к объектам в любой типовой конфигурации, в основе которой лежит БСП.

Категория:

Описание

Введение

Всем доброго времени суток!

В данной статье я хочу рассмотреть базовый функционал подсистемы "Управление доступом", а именно управление профилями доступа для актуальной на текущий момент библиотеки стандартных подсистем (БСП). На момент написания публикации — версия БСП 3.1.5.208. Тестирование практических примеров осуществляется для Платформе 1с 8.3.19.1264.

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

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

Перейдем к первой части — проверка наличия ролей и программное добавление профилей пользователю:

 

Часть 1. Проверка наличия роли и программное добавление профиля пользователю.

Самый базовый метод — проверка, что у пользователя есть роль через Профиль группы доступа, в котором он состоит:

  
  Роль1 = УправлениеДоступом.ЕстьРоль("ДобавлениеИзменениеКурсовВалют",,Справочники.Пользователи.НайтиПоНаименованию("ТестПользователь"));
  // истина

Данный код будет возвращать Истину, если у пользователя "ТестПользователь" есть роль "ДобавлениеИзменениеКурсовВалют", которая добавлена через профиль группы доступа пользователя:

 

Рис.1 Профиль пользователя с ролью "Добавление и изменение курсов валют".

 

Поскольку наш только созданный тестовый пользователь ТестПользователь не имеет право на вход в базу данных попробуем добавить профиль "Пользователь" пользователю ТестПользователь следующим кодом:

  УправлениеДоступом.ВключитьПрофильПользователю(Справочники.Пользователи.НайтиПоНаименованию("ТестПользователь"),Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию("Пользователь"));
  

 

Смотрим, профиль добавился:

 

Рис.2 Добавленный профиль "Пользователь" процедурой ВключитьПрофильПользователю.

 

Теперь, мы можем зайти в базу данным пользователем:

 

Рис.3 Зашли тестовым пользователем в базу, при назначенном профиле "Пользователь".

 

Так же, я могу добавить профиль "Администратор" с ролями "Полные права" и "Администратор системы", т.е. программно с помощью БСП в любой типовой конфигурации я могу "раздавать" полные права.

  УправлениеДоступом.ВключитьПрофильПользователю(Справочники.Пользователи.НайтиПоНаименованию("ТестПользователь"),Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию("Администратор"));
  

 

Отключение любого профиля у пользователя осуществляется вот таким кодом:

  УправлениеДоступом.ВыключитьПрофильПользователю(Справочники.Пользователи.НайтиПоНаименованию("ТестПользователь"),Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию("Администратор"));
  

Так, с базовым включением/выключением профиля мы разобрались, теперь перейдем ко второй части статьи — программное создание профиля доступа с помощью библиотеки стандартных подсистем.

 

Часть 2. Программное обновление и создание профиля доступа на БСП.

Данную часть статьи я разобью на два подраздела, в которых проведу некоторые эксперименты для обновления или создания нового профиля доступа.

 

Подраздел 2.1 Программное обновление поставляемого профиля доступа.

Для подготовки профиля доступа, мы воспользуемся типовым программным конструктором, который предлагается в библиотеке стандартных подсистем. Выглядит это вот так:

 

has been added to your cart:
Оформление заказа