Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Доработки теста "Проверка права интерактивного удаления" #1027

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion tests/smoke/smoke.example.json
Original file line number Diff line number Diff line change
Expand Up @@ -782,7 +782,21 @@
"Тесты_ПроверкаПраваИнтерактивногоУдаления": {

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

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

}

},

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

#КонецОбласти

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

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

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

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

ПлагинНастроек = КонтекстЯдра.Плагин("Настройки");
Объект.Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки);
Настройки = Объект.Настройки;

Если Не ЗначениеЗаполнено(Объект.Настройки) Тогда
Объект.Настройки = Новый Структура(ПутьНастройки, Неопределено);
Expand All @@ -81,12 +91,24 @@
ПроверятьОсновныеРоли = Настройки.ПроверятьОсновныеРоли;
КонецЕсли;

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

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

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

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

Если Настройки.Свойство("ИсключенияИзПроверок") Тогда
ИсключенияИзПроверок = Настройки.ИсключенияИзПроверок;
КонецЕсли;

КонецПроцедуры
Expand All @@ -98,13 +120,14 @@
&НаКлиенте
Процедура ТестДолжен_ПроверитьЧтоНетПраваНаИнтерактивноеУдаление(ПолноеИмяМетаданных) Экспорт

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

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

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

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

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

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

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

СтроковыеУтилиты = СтроковыеУтилиты();
Пояснение = НСтр("ru = 'Проверка права интерактивного удаления'");
Expand All @@ -146,18 +174,26 @@

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

ИмяТеста = СтроковыеУтилиты.ПодставитьПараметрыВСтроку("%1 [%2]", ОбъектМетаданных.ПолноеИмя(), Пояснение);
Если ИсключенияИзПроверок.Свойство(Элемент.Ключ)
И ТипЗнч(ИсключенияИзПроверок[Элемент.Ключ]) = Тип("Массив")
И ЛокальныйКонтекстЯдра.ЕстьВИсключаемойКоллекции(ОбъектМетаданных.Имя, ИсключенияИзПроверок[Элемент.Ключ]) Тогда
Продолжить;
КонецЕсли;
//
ИмяТеста = СтроковыеУтилиты.ПодставитьПараметрыВСтроку("%1 [%2]", ПолноеИмяОбъекта, Пояснение);
СтруктураЭлемента = Новый Структура;
СтруктураЭлемента.Вставить("ИмяТеста", ИмяТеста);
СтруктураЭлемента.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя());
СтруктураЭлемента.Вставить("ПолноеИмя", ПолноеИмяОбъекта);
ОбъектыМетаданных[Элемент.Ключ].Добавить(СтруктураЭлемента);
КонецЦикла;
КонецЦикла;

ЛокальныйКонтекстЯдра = Неопределено;

Возврат ОбъектыМетаданных;

КонецФункции
Expand Down
Loading