Перевірка прав доступу
<em>Область застосування: керований застосунок, звичайний застосунок.</em>Див. також
Область застосування: керований застосунок, звичайний застосунок.
1. У разі великої кількості ролей у конфігурації (від кількох десятків) не рекомендується використовувати рольове налаштування видимості в елементах форм. Замість цього слід дотримуватися таких підходів:
- за значних відмінностей зовнішнього вигляду та функціональності форми залежно від наявності тих чи інших ролей у користувача — розробляти окремі форми, спеціалізовані під конкретний набір прав користувача;
- за незначних відмінностей — виконувати перевірку прав у коді. При цьому слід мати на увазі, що програмне керування рольовою видимістю може знизити швидкість відкриття форми, що потрібно враховувати під час вибору між запропонованими підходами.
Ці заходи дають змогу
- істотно спростити роботу з коду з елементами керування, які зникають із колекції Елементи (код Елементи.ИмяЭлемента.ИмяСвойства стає непрацездатним);
- підвищити стійкість коду до перегляду складу ролей у конфігурації;
- організувати контроль використання ролей у конфігурації (інакше виконувати аналіз прав доступу за прапорцями, призначеними для ролей у різних елементах довільних форм конфігурації, вкрай складно).
2. Для перевірки прав доступу в коді слід використовувати метод ПравоДоступа.
Наприклад, неправильно:
Якщо РольДоступна("ДобавлениеИзменениеСтранМира") Тоді ... Якщо РольДоступна("ПросмотрОтчетаПопулярныеСтраны") Тоді ...
правильно:
Якщо ПравоДоступа("Редактирование", Метаданные.Справочники.СтраныМира) Тоді ... Якщо ПравоДоступа("Просмотр", Метаданные.Отчеты.ПопулярныеСтраны) Тоді ...
Такий підхід дає змогу підвищити стійкість коду до перегляду складу ролей у конфігурації, а також забезпечити працездатність конфігурації в особливих режимах роботи, коли реальний склад ролей відрізняється від спроєктованого — див. Створення профільних ролей (документація Бібліотеки стандартних підсистем, БСП).
3. У тих випадках, коли роль не надає жодних прав на об’єкти метаданих, а слугує лише для визначення того чи іншого додаткового права, допустимо використовувати метод РольДоступна.
Під час використання профільних ролей (засобами підсистеми «Управління доступом» БСП) реальний склад ролей відрізняється від спроєктованого, тому замість методу платформи РольДоступна слід використовувати функцію РолиДоступны загального модуля Пользователи.
Див. також
- Стандартні ролі
- Розробка ролей у бібліотеках