xUnitFor1C
xUnitFor1C copied to clipboard
Плагин для работы с правами пользователя
Был бы полезен отдельный плагин ПраваДоступа для проверки прав пользователя
Или проще добавить метод в уже существующий плагин?
тогда в какой плагин?
Метод выглядит так:
Процедура ПроверкаЗапускаТестаПодПользователемСПрофилем(НаименованиеПрофиля) Экспорт
Если РольДоступна("ПолныеПрава") Тогда
ПропуститьТест(СтрШаблон(НСтр("ru = 'Тест предназначен для тестирования под Профилем %1 без полных прав'"), НаименованиеПрофиля));
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ПроверяемыйПрофиль = Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию(НаименованиеПрофиля);
Если ЗначениеЗаполнено(ПроверяемыйПрофиль) Тогда
УстановленПрофильДоступа = УправлениеДоступомПереопределяемый.ЕстьПрофильГруппПользователей(ПроверяемыйПрофиль, ПараметрыСеанса.ТекущийПользователь);
Проверить(УстановленПрофильДоступа, СтрШаблон("ru = 'У данного пользователя нет профиля доступа %1'", НаименованиеПрофиля));
Иначе
ВызватьИсключение(СтрШаблон(НСтр("ru = 'В системе нет профиля %1'"), НаименованиеПрофиля));
КонецЕсли;
КонецПроцедуры
Это является гарантией того, что тесты запускаются под пользователем с нужными правами. Позволяет отлавливать баги нехватки прав.
Автор @karnilaev https://github.com/xDrivenDevelopment/xUnitFor1C/issues/518#issuecomment-166339870
Перед включением этого метода в плагин нужно учесть:
- Метод СтрШаблон() нужно заменить конкатенацией строк, т.к. этот метод доступен только в версии платформы 8.3.6 без режима совместимости
- Этот метод работает для конфигураций, использующих БСП 2.2. На других версиях БСП этот метод не испытывался. Возможно этот плагин стоит дополнить другими методами, например, для конфигураций без БСП.