Skip to content
Merged
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
65 changes: 57 additions & 8 deletions src/v8runner.os
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,63 @@
ВыполнитьКоманду(Параметры);
КонецПроцедуры


// Добавление пользователя хранилища конфигурации.
// Пользователь, от имени которого выполняется подключение к хранилищу, должен обладать административными правами.
// Если пользователь с указанным именем существует, то пользователь добавлен не будет.
// Параметры:
// СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации
// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации
// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации
// НовыйПользователь - Строка - Имя создаваемого пользователя.
// ПарольПользователя - Строка - Пароль создаваемого пользователя.
// Право - ПраваПользователяХранилища - Права пользователя. Возможные значения:
// ТолькоЧтение — право на просмотр, (по умолчанию)
// ПравоЗахватаОбъектов — право на захват объектов,
// ПравоИзмененияВерсий — право на изменение состава версий,
// Администрирование — право на административные функции.
// ВосстановитьУдаленного - Булево - флаг небходимости востановления удаленного пользователя
// Если обнаружен удаленный пользователь с таким же именем, он будет восстановлен.
//
Процедура ДобавитьПользователяВХранилище(Знач СтрокаСоединения,
Знач ПользовательХранилища,
Знач ПарольХранилища,
Знач НовыйПользователь,
Знач ПарольПользователя = "",
Знач Право = Неопределено,
Знач ВосстановитьУдаленного = Ложь) Экспорт

Параметры = СтандартныеПараметрыЗапускаКонфигуратора();

Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+"""");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предлагаю след.код

Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+"""");
Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+"""");
    
Если Не ПустаяСтрока(ПарольХранилища) Тогда
    Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+"""");
КонецЕсли;

выделить в отдельный метод для исключения его дублирования в нескольких методах работы с хранилищем.

Например, ДобавитьПараметрыПодключенияКХранилищу( Параметры, Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

выделить в отдельный метод для исключения его дублирования в нескольких методах работы с хранилищем.

Ага, я пропустил #19

Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+"""");

Если Не ПустаяСтрока(ПарольХранилища) Тогда
Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+"""");
КонецЕсли;

Параметры.Добавить("/ConfigurationRepositoryAddUser ");
Параметры.Добавить(СтрШаблон("-User ""%1""",НовыйПользователь));
Если Не ПустаяСтрока(ПарольПользователя) Тогда
Параметры.Добавить(СтрШаблон("-Pwd ""%1""",ПарольПользователя));
КонецЕсли;

Если Не ЗначениеЗаполнено(Право) ТОгда
Право = ПраваПользователяХранилища.ТолькоЧтение;
КонецЕсли;

Параметры.Добавить(СтрШаблон("-Rights %1",Право));


Если ВосстановитьУдаленного Тогда
Параметры.Добавить("-RestoreDeletedUser");
КонецЕсли;

ВыполнитьКоманду(Параметры);

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


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

Если НЕ ЗначениеЗаполнено(ФорматВыгрузки) Тогда
Expand Down Expand Up @@ -858,14 +915,6 @@
Возврат ФайлБазы.Существует();
КонецФункции

Функция ХранилищеКонфигурацииСуществует(Знач ПапкаХранилища) Экспорт
ФайлБазы = Новый Файл(ОбъединитьПути(ПапкаХранилища, "1cv8ddb.1CD"));

Возврат ФайлБазы.Существует();
КонецФункции



Функция РазложитьСтрокуВМассивПодстрок(ИсходнаяСтрока, Разделитель)

МассивПодстрок = Новый Массив;
Expand Down
12 changes: 12 additions & 0 deletions src/ПраваПользователяХранилища.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@

Перем ТолькоЧтение Экспорт;
Перем ПравоЗахватаОбъектов Экспорт;
Перем ПравоИзмененияВерсий Экспорт;
Перем Администрирование Экспорт;

///////////////////////////////////////////////////////////////

ТолькоЧтение = "ReadOnly";
ПравоЗахватаОбъектов = "LockObjects";
ПравоИзмененияВерсий = "ManageConfigurationVersions";
Администрирование = "Administration";
41 changes: 40 additions & 1 deletion tests/v8runner-test.os
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации(
КаталогВременногоХранилища,
"Администратор");
Утверждения.ПроверитьИстину(УправлениеКонфигуратором.ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать");
Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать");
ВременныеФайлы.Удалить()

КонецПроцедуры
Expand Down Expand Up @@ -142,6 +142,45 @@

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

Процедура ТестДолжен_ДобавитьПользователяВХранилище() Экспорт

ВременныйКаталог = ВременныеФайлы.СоздатьКаталог();
УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог);

КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository");

ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0\1Cv8.cf");


УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации);
УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации(
КаталогВременногоХранилища,
"Администратор");
Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать");

НовыйПользователь = "ТестовыйПользователь";
ПарольПользователя = "ТестПароль";
УправлениеКонфигуратором.ДобавитьПользователяВХранилище(КаталогВременногоХранилища,
"Администратор",
,
НовыйПользователь,
ПарольПользователя,
ПраваПользователяХранилища.ТолькоЧтение,
Истина);

ПутьКФайлуВерсии = УправлениеКонфигуратором.ПолучитьВерсиюИзХранилища(КаталогВременногоХранилища, НовыйПользователь, ПарольПользователя);

Утверждения.ПроверитьИстину(ФайлСуществует(ПутьКФайлуВерсии), "Файл конфигурации из хранилища должен существовать");

ВременныеФайлы.Удалить()
КонецПроцедуры

Функция ХранилищеКонфигурацииСуществует(Знач ПапкаХранилища)
ФайлБазы = Новый Файл(ОбъединитьПути(ПапкаХранилища, "1cv8ddb.1CD"));

Возврат ФайлБазы.Существует();
КонецФункции

// Проверяет существование каталога
//
// Параметры:
Expand Down