Skip to content

Commit 12a34af

Browse files
authored
Merge pull request #15 from Khorevaa/feature/ConfigurationRepositoryAddUser
API: Добавление пользователей в хранилище
2 parents 260707f + 9492c86 commit 12a34af

File tree

3 files changed

+109
-9
lines changed

3 files changed

+109
-9
lines changed

src/v8runner.os

Lines changed: 57 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,63 @@
144144
ВыполнитьКоманду(Параметры);
145145
КонецПроцедуры
146146

147+
148+
// Добавление пользователя хранилища конфигурации.
149+
// Пользователь, от имени которого выполняется подключение к хранилищу, должен обладать административными правами.
150+
// Если пользователь с указанным именем существует, то пользователь добавлен не будет.
151+
// Параметры:
152+
// СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации
153+
// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации
154+
// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации
155+
// НовыйПользователь - Строка - Имя создаваемого пользователя.
156+
// ПарольПользователя - Строка - Пароль создаваемого пользователя.
157+
// Право - ПраваПользователяХранилища - Права пользователя. Возможные значения:
158+
// ТолькоЧтение — право на просмотр, (по умолчанию)
159+
// ПравоЗахватаОбъектов — право на захват объектов,
160+
// ПравоИзмененияВерсий — право на изменение состава версий,
161+
// Администрирование — право на административные функции.
162+
// ВосстановитьУдаленного - Булево - флаг небходимости востановления удаленного пользователя
163+
// Если обнаружен удаленный пользователь с таким же именем, он будет восстановлен.
164+
//
165+
Процедура ДобавитьПользователяВХранилище(Знач СтрокаСоединения,
166+
Знач ПользовательХранилища,
167+
Знач ПарольХранилища,
168+
Знач НовыйПользователь,
169+
Знач ПарольПользователя = "",
170+
Знач Право = Неопределено,
171+
Знач ВосстановитьУдаленного = Ложь) Экспорт
172+
173+
Параметры = СтандартныеПараметрыЗапускаКонфигуратора();
174+
175+
Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+"""");
176+
Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+"""");
177+
178+
Если Не ПустаяСтрока(ПарольХранилища) Тогда
179+
Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+"""");
180+
КонецЕсли;
181+
182+
Параметры.Добавить("/ConfigurationRepositoryAddUser ");
183+
Параметры.Добавить(СтрШаблон("-User ""%1""",НовыйПользователь));
184+
Если Не ПустаяСтрока(ПарольПользователя) Тогда
185+
Параметры.Добавить(СтрШаблон("-Pwd ""%1""",ПарольПользователя));
186+
КонецЕсли;
187+
188+
Если Не ЗначениеЗаполнено(Право) ТОгда
189+
Право = ПраваПользователяХранилища.ТолькоЧтение;
190+
КонецЕсли;
191+
192+
Параметры.Добавить(СтрШаблон("-Rights %1",Право));
193+
194+
195+
Если ВосстановитьУдаленного Тогда
196+
Параметры.Добавить("-RestoreDeletedUser");
197+
КонецЕсли;
198+
199+
ВыполнитьКоманду(Параметры);
200+
201+
КонецПроцедуры
202+
203+
147204
Процедура ВыгрузитьКонфигурациюВФайлы(Знач КаталогВыгрузки, Знач ФорматВыгрузки = "") Экспорт
148205

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

861-
Функция ХранилищеКонфигурацииСуществует(Знач ПапкаХранилища) Экспорт
862-
ФайлБазы = Новый Файл(ОбъединитьПути(ПапкаХранилища, "1cv8ddb.1CD"));
863-
864-
Возврат ФайлБазы.Существует();
865-
КонецФункции
866-
867-
868-
869918
Функция РазложитьСтрокуВМассивПодстрок(ИсходнаяСтрока, Разделитель)
870919

871920
МассивПодстрок = Новый Массив;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
2+
Перем ТолькоЧтение Экспорт;
3+
Перем ПравоЗахватаОбъектов Экспорт;
4+
Перем ПравоИзмененияВерсий Экспорт;
5+
Перем Администрирование Экспорт;
6+
7+
///////////////////////////////////////////////////////////////
8+
9+
ТолькоЧтение = "ReadOnly";
10+
ПравоЗахватаОбъектов = "LockObjects";
11+
ПравоИзмененияВерсий = "ManageConfigurationVersions";
12+
Администрирование = "Administration";

tests/v8runner-test.os

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации(
7373
КаталогВременногоХранилища,
7474
"Администратор");
75-
Утверждения.ПроверитьИстину(УправлениеКонфигуратором.ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать");
75+
Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать");
7676
ВременныеФайлы.Удалить()
7777

7878
КонецПроцедуры
@@ -142,6 +142,45 @@
142142

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

145+
Процедура ТестДолжен_ДобавитьПользователяВХранилище() Экспорт
146+
147+
ВременныйКаталог = ВременныеФайлы.СоздатьКаталог();
148+
УправлениеКонфигуратором.КаталогСборки(ВременныйКаталог);
149+
150+
КаталогВременногоХранилища = ОбъединитьПути(ВременныйКаталог, "v8r_TempRepository");
151+
152+
ФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "1.0\1Cv8.cf");
153+
154+
155+
УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации);
156+
УправлениеКонфигуратором.СоздатьФайловоеХранилищеКонфигурации(
157+
КаталогВременногоХранилища,
158+
"Администратор");
159+
Утверждения.ПроверитьИстину(ХранилищеКонфигурацииСуществует(КаталогВременногоХранилища), "Временное хранилище конфигурации должно существовать");
160+
161+
НовыйПользователь = "ТестовыйПользователь";
162+
ПарольПользователя = "ТестПароль";
163+
УправлениеКонфигуратором.ДобавитьПользователяВХранилище(КаталогВременногоХранилища,
164+
"Администратор",
165+
,
166+
НовыйПользователь,
167+
ПарольПользователя,
168+
ПраваПользователяХранилища.ТолькоЧтение,
169+
Истина);
170+
171+
ПутьКФайлуВерсии = УправлениеКонфигуратором.ПолучитьВерсиюИзХранилища(КаталогВременногоХранилища, НовыйПользователь, ПарольПользователя);
172+
173+
Утверждения.ПроверитьИстину(ФайлСуществует(ПутьКФайлуВерсии), "Файл конфигурации из хранилища должен существовать");
174+
175+
ВременныеФайлы.Удалить()
176+
КонецПроцедуры
177+
178+
Функция ХранилищеКонфигурацииСуществует(Знач ПапкаХранилища)
179+
ФайлБазы = Новый Файл(ОбъединитьПути(ПапкаХранилища, "1cv8ddb.1CD"));
180+
181+
Возврат ФайлБазы.Существует();
182+
КонецФункции
183+
145184
// Проверяет существование каталога
146185
//
147186
// Параметры:

0 commit comments

Comments
 (0)