forked from vanessa-opensource/vanessa-runner
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Создание первого пользователя-администратора (BDD)
- Loading branch information
Showing
8 changed files
with
486 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"> | ||
<ExternalDataProcessor uuid="78badc06-5955-45c6-8a30-99ceb30d75dc"> | ||
<InternalInfo> | ||
<xr:ContainedObject> | ||
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId> | ||
<xr:ObjectId>7569c3ee-5678-4c71-8295-36f29f9726d1</xr:ObjectId> | ||
</xr:ContainedObject> | ||
<xr:GeneratedType name="ExternalDataProcessorObject.СоздатьПользователей" category="Object"> | ||
<xr:TypeId>55bdc23f-32f9-4590-8df2-7a18c4b2c193</xr:TypeId> | ||
<xr:ValueId>ecf3cec3-0401-4f2e-8406-3f41886e4247</xr:ValueId> | ||
</xr:GeneratedType> | ||
</InternalInfo> | ||
<Properties> | ||
<Name>СоздатьПользователей</Name> | ||
<Synonym> | ||
<v8:item> | ||
<v8:lang>ru</v8:lang> | ||
<v8:content>Создать пользователей</v8:content> | ||
</v8:item> | ||
</Synonym> | ||
<Comment/> | ||
<DefaultForm>ExternalDataProcessor.СоздатьПользователей.Form.Форма</DefaultForm> | ||
<AuxiliaryForm/> | ||
</Properties> | ||
<ChildObjects> | ||
<Form>Форма</Form> | ||
</ChildObjects> | ||
</ExternalDataProcessor> | ||
</MetaDataObject> |
22 changes: 22 additions & 0 deletions
22
epf/СоздатьПользователей/СоздатьПользователей/Forms/Форма.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"> | ||
<Form uuid="ba75a5d6-da93-477a-8a34-b56c95ff2e15"> | ||
<Properties> | ||
<Name>Форма</Name> | ||
<Synonym> | ||
<v8:item> | ||
<v8:lang>ru</v8:lang> | ||
<v8:content>Форма</v8:content> | ||
</v8:item> | ||
</Synonym> | ||
<Comment/> | ||
<FormType>Managed</FormType> | ||
<IncludeHelpInContents>false</IncludeHelpInContents> | ||
<UsePurposes> | ||
<v8:Value xsi:type="app:ApplicationUsePurpose">PersonalComputer</v8:Value> | ||
<v8:Value xsi:type="app:ApplicationUsePurpose">MobileDevice</v8:Value> | ||
</UsePurposes> | ||
<ExtendedPresentation/> | ||
</Properties> | ||
</Form> | ||
</MetaDataObject> |
16 changes: 16 additions & 0 deletions
16
epf/СоздатьПользователей/СоздатьПользователей/Forms/Форма/Ext/Form.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"> | ||
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/> | ||
<Events> | ||
<Event name="OnOpen">ПриОткрытии</Event> | ||
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event> | ||
</Events> | ||
<Attributes> | ||
<Attribute name="Объект" id="1"> | ||
<Type> | ||
<v8:Type>cfg:ExternalDataProcessorObject.СоздатьПользователей</v8:Type> | ||
</Type> | ||
<MainAttribute>true</MainAttribute> | ||
</Attribute> | ||
</Attributes> | ||
</Form> |
298 changes: 298 additions & 0 deletions
298
epf/СоздатьПользователей/СоздатьПользователей/Forms/Форма/Ext/Form/Module.bsl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,298 @@ | ||
#Область ОбработчикиСобытийФормы | ||
|
||
&НаКлиенте | ||
Перем ПутьКОбработке; | ||
|
||
#КонецОбласти | ||
|
||
#Область ОбработчикиСобытийФормы | ||
|
||
&НаСервере | ||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) | ||
|
||
УбратьПодтверждениеПриЗавершенииПрограммы(); | ||
КонецПроцедуры | ||
|
||
&НаКлиенте | ||
Процедура ПриОткрытии(Отказ) | ||
СтрокаЗапуска = СокрЛП(ПараметрЗапуска); | ||
|
||
Если СтрокаЗапуска = "" Тогда | ||
Возврат; | ||
КонецЕсли; | ||
|
||
Попытка | ||
ПутьКОбработке = ПолучитьПутьОбработки(); | ||
|
||
ПараметрыКоманднойСтроки = ПолучитьСтруктуруПараметров(СтрокаЗапуска); | ||
ПреобразоватьПараметрыКоторыеНачинаютсяСТочкиКНормальнымПутям(ПараметрыКоманднойСтроки); | ||
|
||
Если ПараметрыКоманднойСтроки.Свойство("СоздатьАдминистратора") Или | ||
ПараметрыКоманднойСтроки.Свойство("AdminCreate") Тогда | ||
|
||
Успешно = СоздатьПервогоАдминистратораПриНеобходимости(ПараметрыКоманднойСтроки.Имя); | ||
КонецЕсли; | ||
|
||
Если ПараметрыКоманднойСтроки.Свойство("ЗавершитьРаботуСистемы") Тогда | ||
ЗавершитьРаботуСистемы(Ложь, Ложь); | ||
//ПрекратитьРаботуСистемы(Ложь); | ||
Возврат; | ||
КонецЕсли; | ||
|
||
Исключение | ||
ОписаниеОшибки = ОписаниеОшибки(); | ||
Ошибка = "Неудача при обработке параметров запуска" | ||
+ Символы.ВК + "Параметры: " + СтрокаЗапуска | ||
+ Символы.ВК + ОписаниеОшибки; | ||
Лог(Ошибка); | ||
КонецПопытки; | ||
|
||
//ПрекратитьРаботуСистемы(Ложь); | ||
КонецПроцедуры | ||
|
||
&НаКлиенте | ||
Функция ПолучитьПутьОбработки() | ||
|
||
Перем ФайлПути, Результат; | ||
|
||
Результат = ПолучитьПутьКОбработкеСервер(); | ||
Если НЕ ПустаяСтрока(ПутьКОбработке) Тогда | ||
ФайлПути = Новый Файл(ПутьКОбработке); | ||
Результат = ФайлПути.Путь; | ||
КонецЕсли; | ||
|
||
Возврат Результат; | ||
КонецФункции | ||
|
||
#КонецОбласти | ||
|
||
#Область ОбработчикиСобытийЭлементовШапкиФормы | ||
|
||
#КонецОбласти | ||
|
||
#Область ОбработчикиКомандФормы | ||
|
||
#КонецОбласти | ||
|
||
#Область СлужебныеПроцедурыИФункции | ||
|
||
&НаСервере | ||
Процедура УбратьПодтверждениеПриЗавершенииПрограммы() | ||
|
||
Попытка | ||
Выполнить("ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(""ОбщиеНастройкиПользователя"", | ||
|""ЗапрашиватьПодтверждениеПриЗавершенииПрограммы"", Ложь);"); | ||
Исключение | ||
// Данного модуля и метода может не быть в конфигурации | ||
КонецПопытки; | ||
|
||
КонецПроцедуры | ||
|
||
&НаСервере | ||
// портировано из Vanessa-ADD | ||
Функция ПолучитьПутьКОбработкеСервер() | ||
|
||
ОбъектНаСервере = ОбъектНаСервере(); | ||
ИспользуемоеИмяФайла = ОбъектНаСервере.ИспользуемоеИмяФайла; | ||
ПрефиксИмени = НРег(Лев(ИспользуемоеИмяФайла, 6)); | ||
Если (ПрефиксИмени <> "e1cib/") И (ПрефиксИмени <> "e1cib\") Тогда | ||
Возврат ИспользуемоеИмяФайла; | ||
КонецЕсли; | ||
|
||
Возврат ""; | ||
КонецФункции | ||
|
||
Функция ОбъектНаСервере() | ||
Возврат РеквизитФормыВЗначение("Объект"); | ||
КонецФункции | ||
|
||
&НаКлиенте | ||
// портировано из Vanessa-ADD | ||
Функция ПолучитьСтруктуруПараметров(Стр) | ||
Результат = Новый Структура; | ||
|
||
Массив = РазложитьСтрокуВМассивПодстрок(Стр,";"); | ||
Для каждого Элем Из Массив Цикл | ||
Поз = Найти(Элем,"="); | ||
Если Поз > 0 Тогда | ||
Ключ = Лев(Элем, Поз-1); | ||
Значение = Сред(Элем, Поз+1); | ||
Попытка | ||
Результат.Вставить(Ключ, Значение); | ||
Исключение | ||
Лог("Не смог получить значение из строки запуска: " + Ключ); | ||
КонецПопытки; | ||
Иначе | ||
Если НЕ ПустаяСтрока(Элем) Тогда | ||
Попытка | ||
Результат.Вставить(Элем, Истина); | ||
Исключение | ||
Лог("Не смог получить значение из строки запуска: " + Элем); | ||
КонецПопытки; | ||
КонецЕсли; | ||
КонецЕсли; | ||
КонецЦикла; | ||
|
||
Возврат Результат; | ||
КонецФункции | ||
|
||
&НаКлиенте | ||
//&НаСервереБезКонтекста | ||
// портировано из Vanessa-ADD | ||
Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) Экспорт | ||
|
||
Результат = Новый Массив; | ||
|
||
// для обеспечения обратной совместимости | ||
Если ПропускатьПустыеСтроки = Неопределено Тогда | ||
ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь); | ||
Если ПустаяСтрока(Строка) Тогда | ||
Если Разделитель = " " Тогда | ||
Результат.Добавить(""); | ||
КонецЕсли; | ||
Возврат Результат; | ||
КонецЕсли; | ||
КонецЕсли; | ||
|
||
Позиция = Найти(Строка, Разделитель); | ||
Пока Позиция > 0 Цикл | ||
Подстрока = Лев(Строка, Позиция - 1); | ||
Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда | ||
Результат.Добавить(Подстрока); | ||
КонецЕсли; | ||
Строка = Сред(Строка, Позиция + СтрДлина(Разделитель)); | ||
Позиция = Найти(Строка, Разделитель); | ||
КонецЦикла; | ||
|
||
Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда | ||
Результат.Добавить(Строка); | ||
КонецЕсли; | ||
|
||
Возврат Результат; | ||
|
||
КонецФункции | ||
|
||
&НаКлиенте | ||
// портировано из Vanessa-ADD | ||
Процедура ПреобразоватьПараметрыКоторыеНачинаютсяСТочкиКНормальнымПутям(СтруктураПараметров) | ||
МассивКлючей = Новый Массив; | ||
|
||
Для каждого ПараметрБилда Из СтруктураПараметров Цикл | ||
Если Лев(ПараметрБилда.Значение,1) = "." Тогда | ||
МассивКлючей.Добавить(ПараметрБилда.Ключ); | ||
ИначеЕсли Найти(ПараметрБилда.Значение, "$instrumentsRoot") > 0 Тогда | ||
МассивКлючей.Добавить(ПараметрБилда.Ключ); | ||
КонецЕсли; | ||
КонецЦикла; | ||
|
||
Для каждого Ключ Из МассивКлючей Цикл | ||
Было = СтруктураПараметров[Ключ]; | ||
Стало = ПреобразоватьПутьСТочкамиКНормальномуПути(СтруктураПараметров[Ключ]); | ||
Лог("Было=" + Было + ", Стало=" + Стало, ""); | ||
|
||
СтруктураПараметров.Вставить(Ключ,Стало); | ||
КонецЦикла; | ||
КонецПроцедуры | ||
|
||
&НаКлиенте | ||
Функция ПреобразоватьПутьСТочкамиКНормальномуПути(ОригСтр) | ||
|
||
Если Найти(ОригСтр, "$instrumentsRoot") > 0 И НЕ ПустаяСтрока(ПутьКОбработке) Тогда | ||
ОригСтр = СтрЗаменить(ОригСтр, "$instrumentsRoot", ДополнитьСлешВПуть(ПутьКОбработке)); | ||
Возврат ОригСтр; | ||
КонецЕсли; | ||
|
||
Возврат ОригСтр; | ||
|
||
КонецФункции | ||
|
||
// Функция ДополнитьСлешВПуть | ||
// | ||
// Параметры: | ||
// ИмяКаталога | ||
// | ||
// Описание: | ||
// Функция дополняет и возвращает слеш в путь в конец строки, если он отсутствует | ||
// | ||
// портировано из Vanessa-ADD | ||
// | ||
&НаКлиенте | ||
Функция ДополнитьСлешВПуть(Знач Каталог) Экспорт | ||
разделитель = "\"; | ||
|
||
Если ПустаяСтрока(Каталог) Тогда | ||
Возврат Каталог; | ||
КонецЕсли; | ||
СисИнфо = Новый СистемнаяИнформация; | ||
Если Найти(Строка(СисИнфо.ТипПлатформы), "Linux")>0 Тогда | ||
//Если ЭтоLinux Тогда | ||
разделитель = "/"; | ||
КонецЕсли; | ||
|
||
Если Прав(Каталог, 1) <> разделитель Тогда | ||
Каталог = Каталог + разделитель; | ||
КонецЕсли; | ||
Возврат Каталог; | ||
КонецФункции | ||
|
||
// портировано из Vanessa-ADD | ||
//Функция СоздатьПервогоАдминистратораПриНеобходимости(Имя, ПараметрЗапуска) | ||
Функция СоздатьПервогоАдминистратораПриНеобходимости(Имя) | ||
|
||
Если ПользователиИнформационнойБазы.ПолучитьПользователей().Количество() > 0 Тогда | ||
Лог("Уже существуют пользователь. Пользователь-администратор не создан!"); | ||
Возврат Ложь; | ||
КонецЕсли; | ||
|
||
//Если Не (ПустаяСтрока(ПараметрЗапуска) Или ПараметрЗапуска = "AdminCreate" Или ПараметрЗапуска = "СоздатьАдминистратора") Тогда | ||
// Возврат Ложь; | ||
//КонецЕсли; | ||
|
||
Администратор = ПользователиИнформационнойБазы.СоздатьПользователя(); | ||
Администратор.Имя = Имя; | ||
Администратор.АутентификацияСтандартная = Истина; | ||
Администратор.ПоказыватьВСпискеВыбора = Истина; | ||
Администратор.ПолноеИмя = Имя; | ||
|
||
Если Метаданные.Роли.Найти("ПолныеПрава") <> Неопределено Тогда | ||
Администратор.Роли.Добавить(Метаданные.Роли.ПолныеПрава); | ||
КонецЕсли; | ||
|
||
Администратор.Язык = Метаданные.Языки.Русский; | ||
Администратор.Записать(); | ||
|
||
Сообщение = СтрЗаменить("Пользователь-администратор с именем %1 создан!", "%1", Имя); | ||
Лог(Сообщение, ""); | ||
|
||
Возврат Истина; | ||
|
||
КонецФункции | ||
|
||
&НаСервере | ||
Процедура Лог(Знач Комментарий, Знач Уровень = "Ошибка") | ||
|
||
Если Не ЗначениеЗаполнено(Уровень) Тогда | ||
Уровень = "Информация"; | ||
КонецЕсли; | ||
|
||
УровеньЖР = УровеньЖурналаРегистрации.Информация; | ||
Если НРег(Уровень) = "ошибка" Тогда | ||
УровеньЖР = УровеньЖурналаРегистрации.Ошибка; | ||
ИначеЕсли НРег(Уровень) = "предупреждение" Тогда | ||
УровеньЖР = УровеньЖурналаРегистрации.Предупреждение; | ||
КонецЕсли; | ||
|
||
СообщениеПользователю = Новый СообщениеПользователю; | ||
СообщениеПользователю.Текст = Уровень + ": " + Комментарий; | ||
СообщениеПользователю.Сообщить(); | ||
|
||
ЗаписьЖурналаРегистрации(КлючЖР(), УровеньЖР, Неопределено, Неопределено, Комментарий); | ||
|
||
КонецПроцедуры | ||
|
||
&НаСервере | ||
Функция КлючЖР() | ||
Возврат "VanessaRunner.СозданиеПользователей"; | ||
КонецФункции | ||
|
||
#КонецОбласти |
Oops, something went wrong.