xUnitFor1C icon indicating copy to clipboard operation
xUnitFor1C copied to clipboard

Плагин для работы с правами пользователя

Open artbear opened this issue 10 years ago • 1 comments

Был бы полезен отдельный плагин ПраваДоступа для проверки прав пользователя Или проще добавить метод в уже существующий плагин? тогда в какой плагин?

Метод выглядит так:

Процедура ПроверкаЗапускаТестаПодПользователемСПрофилем(НаименованиеПрофиля) Экспорт

    Если РольДоступна("ПолныеПрава") Тогда 
        ПропуститьТест(СтрШаблон(НСтр("ru = 'Тест предназначен для тестирования под Профилем %1 без полных прав'"), НаименованиеПрофиля));
    КонецЕсли;

    УстановитьПривилегированныйРежим(Истина);
    ПроверяемыйПрофиль = Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию(НаименованиеПрофиля);
    Если ЗначениеЗаполнено(ПроверяемыйПрофиль) Тогда  
        УстановленПрофильДоступа = УправлениеДоступомПереопределяемый.ЕстьПрофильГруппПользователей(ПроверяемыйПрофиль, ПараметрыСеанса.ТекущийПользователь);
        Проверить(УстановленПрофильДоступа, СтрШаблон("ru = 'У данного пользователя нет профиля доступа %1'", НаименованиеПрофиля));
    Иначе
        ВызватьИсключение(СтрШаблон(НСтр("ru = 'В системе нет профиля %1'"), НаименованиеПрофиля));
    КонецЕсли;

КонецПроцедуры

Это является гарантией того, что тесты запускаются под пользователем с нужными правами. Позволяет отлавливать баги нехватки прав.

Автор @karnilaev https://github.com/xDrivenDevelopment/xUnitFor1C/issues/518#issuecomment-166339870

artbear avatar Dec 21 '15 16:12 artbear

Перед включением этого метода в плагин нужно учесть:

  • Метод СтрШаблон() нужно заменить конкатенацией строк, т.к. этот метод доступен только в версии платформы 8.3.6 без режима совместимости
  • Этот метод работает для конфигураций, использующих БСП 2.2. На других версиях БСП этот метод не испытывался. Возможно этот плагин стоит дополнить другими методами, например, для конфигураций без БСП.

karnilaev avatar Dec 21 '15 18:12 karnilaev