Skip to content

Commit

Permalink
Переработана настройка исключения из проверки объектов метаданных и р…
Browse files Browse the repository at this point in the history
…олей

Обновлен пример настроек теста
  • Loading branch information
AlexPCRus committed May 2, 2024
1 parent b701bc9 commit 5ab63dd
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 16 deletions.
9 changes: 6 additions & 3 deletions tests/smoke/smoke.example.json
Original file line number Diff line number Diff line change
Expand Up @@ -783,16 +783,19 @@

"Используется": false,
"ПроверятьОсновныеРоли": true,
"Префикс": "",
"ОтборПоПрефиксу": false,
"ПрефиксОбъекта": "",
"ОтборПоПрефиксуОбъекта": false,
"ПрефиксРоли": "",
"ОтборПоПрефиксуРоли": false,
"ИсключенияИзПроверок":{

"Справочники":[
"Справочник1"
],
"Документы":[
"Документ1"
],
]

}

},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,13 @@
&НаКлиенте
Перем ПроверятьОсновныеРоли;
&НаКлиенте
Перем ОтборПоПрефиксу;
Перем ОтборПоПрефиксуОбъекта;
&НаКлиенте
Перем ПрефиксОбъектов;
Перем ПрефиксОбъекта;
&НаКлиенте
Перем ОтборПоПрефиксуРоли;
&НаКлиенте
Перем ПрефиксРоли;
&НаКлиенте
Перем ИсключенияИзПроверок;

Expand Down Expand Up @@ -39,7 +43,7 @@
Возврат;
КонецЕсли;

ОбъектыМетаданных = ОбъектыМетаданных(ОтборПоПрефиксу, ПрефиксОбъектов, ИсключенияИзПроверок);
ОбъектыМетаданных = ОбъектыМетаданных(ОтборПоПрефиксуОбъекта, ПрефиксОбъекта, ИсключенияИзПроверок);

Для Каждого ОбъектМетаданных Из ОбъектыМетаданных Цикл
Если ОбъектМетаданных.Значение.Количество() = 0 Тогда
Expand Down Expand Up @@ -67,8 +71,10 @@
Возврат;
КонецЕсли;

ПрефиксОбъектов = "";
ОтборПоПрефиксу = Ложь;
ПрефиксОбъекта = "";
ОтборПоПрефиксуОбъекта = Ложь;
ПрефиксРоли = "";
ОтборПоПрефиксуРоли = Ложь;
ИсключенияИзПроверок = Новый Структура;
ПроверятьОсновныеРоли = Истина;

Expand All @@ -85,12 +91,20 @@
ПроверятьОсновныеРоли = Настройки.ПроверятьОсновныеРоли;
КонецЕсли;

Если Настройки.Свойство("Префикс") Тогда
ПрефиксОбъектов = ВРег(Настройки.Префикс);
Если Настройки.Свойство("ПрефиксОбъекта") Тогда
ПрефиксОбъекта = ВРег(Настройки.ПрефиксОбъекта);
КонецЕсли;

Если Настройки.Свойство("ОтборПоПрефиксуОбъекта") Тогда
ОтборПоПрефиксуОбъекта = Настройки.ОтборПоПрефиксуОбъекта;
КонецЕсли;

Если Настройки.Свойство("ПрефиксРоли") Тогда
ПрефиксРоли = ВРег(Настройки.ПрефиксРоли);
КонецЕсли;

Если Настройки.Свойство("ОтборПоПрефиксу") Тогда
ОтборПоПрефиксу = Настройки.ОтборПоПрефиксу;
Если Настройки.Свойство("ОтборПоПрефиксуРоли") Тогда
ОтборПоПрефиксуРоли = Настройки.ОтборПоПрефиксуРоли;
КонецЕсли;

Если Настройки.Свойство("ИсключенияИзПроверок") Тогда
Expand All @@ -106,14 +120,14 @@
&НаКлиенте
Процедура ТестДолжен_ПроверитьЧтоНетПраваНаИнтерактивноеУдаление(ПолноеИмяМетаданных) Экспорт

Результат = ПроверитьЧтоНетПраваНаИнтерактивноеУдаление(ПолноеИмяМетаданных, ПроверятьОсновныеРоли);
Результат = ПроверитьЧтоНетПраваНаИнтерактивноеУдаление(ПолноеИмяМетаданных, ОтборПоПрефиксуРоли, ПрефиксРоли, ПроверятьОсновныеРоли);
ШаблонСообщения = НСтр("ru = 'Есть право на интерактивное удаление объектов:%1'");
Утверждения.Проверить(Результат = "", СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообщения, Результат));

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

&НаСервереБезКонтекста
Функция ПроверитьЧтоНетПраваНаИнтерактивноеУдаление(ПолноеИмяМетаданных, ПроверятьОсновныеРоли)
Функция ПроверитьЧтоНетПраваНаИнтерактивноеУдаление(ПолноеИмяМетаданных, ОтборПоПрефиксуРоли, ПрефиксРоли, ПроверятьОсновныеРоли)

ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяМетаданных);
ЕстьПраво = Ложь;
Expand All @@ -123,6 +137,9 @@
Если Не ПроверятьОсновныеРоли И Метаданные.ОсновныеРоли.Содержит(Роль) Тогда
Продолжить;
КонецЕсли;
Если ОтборПоПрефиксуРоли И Не СтрНачинаетсяС(ВРег(Роль.Имя), ВРег(ПрефиксРоли)) Тогда
Продолжить;
КонецЕсли;
ЕстьПраво = ПравоДоступа("ИнтерактивноеУдаление", ОбъектМетаданных, Роль);
Если ЕстьПраво Тогда
Результат = Результат + Символы.ПС + Роль.Имя;
Expand All @@ -138,7 +155,7 @@
#Область СлужебныеПроцедурыИФункции

&НаСервереБезКонтекста
Функция ОбъектыМетаданных(ОтборПоПрефиксу, ПрефиксОбъектов, ИсключенияИзПроверок)
Функция ОбъектыМетаданных(ОтборПоПрефиксуОбъекта, ПрефиксОбъекта, ИсключенияИзПроверок)

ЛокальныйКонтекстЯдра = ВнешниеОбработки.Создать("xddTestRunner");

Expand All @@ -158,7 +175,7 @@
Для Каждого Элемент Из ОбъектыМетаданных Цикл
Для Каждого ОбъектМетаданных Из Метаданные[Элемент.Ключ] Цикл
ПолноеИмяОбъекта = ОбъектМетаданных.ПолноеИмя();
Если ОтборПоПрефиксу И Не СтрНачинаетсяС(ВРег(ОбъектМетаданных.Имя), ВРег(ПрефиксОбъектов)) Тогда
Если ОтборПоПрефиксуОбъекта И Не СтрНачинаетсяС(ВРег(ОбъектМетаданных.Имя), ВРег(ПрефиксОбъекта)) Тогда
Продолжить;
КонецЕсли;
Если ИсключенияИзПроверок.Свойство(Элемент.Ключ)
Expand Down

0 comments on commit 5ab63dd

Please sign in to comment.