Skip to content

Commit 3062fd0

Browse files
authored
Merge pull request #16 from Khorevaa/feature/ConfigurationRepositoryCopyUsers
API: Копирование пользователей из одного хранилища в другое
2 parents 19456c6 + 1a651c4 commit 3062fd0

File tree

2 files changed

+103
-3
lines changed

2 files changed

+103
-3
lines changed

src/v8runner.os

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -476,10 +476,9 @@
476476
Если Не ЗначениеЗаполнено(Право) ТОгда
477477
Право = ПраваПользователяХранилища.ТолькоЧтение;
478478
КонецЕсли;
479-
479+
480480
Параметры.Добавить(СтрШаблон("-Rights %1",Право));
481-
482-
481+
483482
Если ВосстановитьУдаленного Тогда
484483
Параметры.Добавить("-RestoreDeletedUser");
485484
КонецЕсли;
@@ -488,6 +487,49 @@
488487

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

490+
// Копирование пользователей из хранилища конфигурации. Копирование удаленных пользователей не выполняется.
491+
// Если пользователь с указанным именем существует, то пользователь не будет добавлен.
492+
//
493+
//Параметры:
494+
// СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации
495+
// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации
496+
// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации
497+
// СтрокаСоединенияХранилищаКопии - Строка - Путь к хранилищу, из которого выполняется копирование пользователей.
498+
// ПользовательХранилищаКопии - Строка - Имя пользователя хранилища, из которого выполняется копирование пользователей.
499+
// ПарольХранилищаКопии - Строка - Пароль пользователя хранилища, из которого выполняется копирование пользователей.
500+
// ВосстановитьУдаленного - Булево - флаг небходимости востановления удаленных пользователей
501+
//
502+
Процедура КопироватьПользователейИзХранилища(Знач СтрокаСоединения,
503+
Знач ПользовательХранилища,
504+
Знач ПарольХранилища,
505+
Знач СтрокаСоединенияХранилищаКопии,
506+
Знач ПользовательХранилищаКопии,
507+
Знач ПарольХранилищаКопии = "",
508+
Знач ВосстановитьУдаленного = Ложь) Экспорт
509+
510+
Параметры = СтандартныеПараметрыЗапускаКонфигуратора();
511+
512+
Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+"""");
513+
Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+"""");
514+
515+
Если Не ПустаяСтрока(ПарольХранилища) Тогда
516+
Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+"""");
517+
КонецЕсли;
518+
519+
Параметры.Добавить("/ConfigurationRepositoryCopyUsers ");
520+
Параметры.Добавить(СтрШаблон("-Path ""%1""",СтрокаСоединенияХранилищаКопии));
521+
Параметры.Добавить(СтрШаблон("-User ""%1""",ПользовательХранилищаКопии));
522+
Если Не ПустаяСтрока(ПарольХранилищаКопии) Тогда
523+
Параметры.Добавить(СтрШаблон("-Pwd ""%1""",ПарольХранилищаКопии));
524+
КонецЕсли;
525+
526+
Если ВосстановитьУдаленного Тогда
527+
Параметры.Добавить("-RestoreDeletedUser");
528+
КонецЕсли;
529+
530+
ВыполнитьКоманду(Параметры);
531+
532+
КонецПроцедуры
491533

492534
Процедура ВыгрузитьКонфигурациюВФайлы(Знач КаталогВыгрузки, Знач ФорматВыгрузки = "") Экспорт
493535

tests/v8runner-test.os

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
СписокТестов.Добавить("ТестДолжен_СоздатьХранилищеКонфигурации");
2626
СписокТестов.Добавить("ТестДолжен_ПроверитьСозданиеФайловПоставки");
2727
СписокТестов.Добавить("ТестДолжен_ПроверитьФормированиеФайлаОтчетПоВерсиямХранилища");
28+
СписокТестов.Добавить("ТестДолжен_СкопироватьПользователейИзХранилища");
2829

2930
Возврат СписокТестов;
3031

@@ -207,6 +208,63 @@
207208
ВременныеФайлы.Удалить()
208209
КонецПроцедуры
209210

211+
212+
Процедура ТестДолжен_СкопироватьПользователейИзХранилища() Экспорт
213+
214+
ВременныйКаталог = ВременныеФайлы.СоздатьКаталог();
215+
УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог);
216+
217+
КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository");
218+
219+
ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0\1Cv8.cf");
220+
221+
222+
УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации);
223+
УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации(
224+
КаталогВременногоХранилища,
225+
"Администратор");
226+
Утверждения.ПроверитьИстину(УправлениеКонфигуратором.ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать");
227+
228+
НовыйПользователь = "ТестовыйПользователь";
229+
ПарольПользователя = "ТестПароль";
230+
УправлениеКонфигуратором.ДобавитьПользователяВХранилище(КаталогВременногоХранилища,
231+
"Администратор",
232+
,
233+
НовыйПользователь,
234+
ПарольПользователя,
235+
ПраваПользователяХранилища.ТолькоЧтение,
236+
Истина);
237+
238+
ПутьКФайлуВерсии = УправлениеКонфигуратором.ПолучитьВерсиюИзХранилища(КаталогВременногоХранилища, НовыйПользователь, ПарольПользователя);
239+
240+
Утверждения.ПроверитьИстину(ФайлСуществует(ПутьКФайлуВерсии), "Файл конфигурации из хранилища должен существовать");
241+
242+
КаталогВременногоХранилища2 = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository2");
243+
244+
ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0\1Cv8.cf");
245+
246+
247+
УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации);
248+
УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации(
249+
КаталогВременногоХранилища,
250+
"Администратор");
251+
Утверждения.ПроверитьИстину(УправлениеКонфигуратором.ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища2), "Временное хранилище 2 конфигурации должно существовать");
252+
253+
УправлениеКонфигуратором.КопироватьПользователейИзХранилища(КаталогВременногоХранилища,
254+
"Администратор",
255+
,
256+
КаталогВременногоХранилища2,
257+
НовыйПользователь,
258+
ПарольПользователя,
259+
Истина);
260+
261+
ПутьКФайлуВерсии = УправлениеКонфигуратором.ПолучитьВерсиюИзХранилища(КаталогВременногоХранилища2, НовыйПользователь, ПарольПользователя);
262+
263+
Утверждения.ПроверитьИстину(ФайлСуществует(ПутьКФайлуВерсии), "Файл конфигурации из хранилища должен существовать");
264+
265+
ВременныеФайлы.Удалить()
266+
КонецПроцедуры
267+
210268
Функция ХранилищеКонфигурацииСуществует(Знач ПапкаХранилища)
211269
ФайлБазы = Новый Файл(ОбъединитьПути(ПапкаХранилища, "1cv8ddb.1CD"));
212270

0 commit comments

Comments
 (0)