Формулировка проблемы: в связи с доработкой импорта/экспортa конфигурации требуется доработать API метод импорта конфигурации: добавить параметр "Удалять права при замене объектов".
Решение: необходимо доработать API метод
rest/api/configuration, добавив входной параметр
delete_rights. Ввиду отсутствия описания данного
метода ниже представлено полное описание с доработкой.
URL метода: rest/api/configuration
Тип запроса: POST.
Данный метод требует стандартной HTTP авторизации. В качестве
атрибута enctype необходимо указывать
multipart.
Метод принимает следующие входные параметры:
data - файл с импортируемой конфигурацией
(обяз.);
new_version - создание новой версию для
объектов типа "форма" (необяз., по умолчанию
true). Может принимать следующие значения:
false - при наличии в среде импорта формы
с тем же кодом, что и у импортируемой, она будет заменена;
true - если в среде импорта уже
содержится форма с тем же кодом, что и у импортируемой, то
данный объект добавится в виде новой версии формы с текущей
датой на сервере.
delete_child_objects - удаление всех дочерних
объектов при замене родительского объекта (необяз., по умолчанию
false). Может принимать следующие значения:
false - если в среде импорта имеется
объект, который будет заменен, то все его дочерние объекты
перенесутся внутрь заменяемого объекта;
true - если в среде импорта существует
объект, который будет заменен, то все его дочерние объекты
будут удалены;
delete_rights - удаление прав при замене
объектов (необяз., по умолчанию false). Может
принимать следующие значения:
false - если в среде импорта существует
объект, который будет заменен, то права на объект
(ограничения к доступу) после замены не удаляются;
true - если в среде импорта существует
объект, который будет заменен, то права на объект
(ограничения к доступу) после замены будут удалены;
locale (не обяз.) - код локали (при
отсутствии параметра используется
язык
системы по умолчанию).
Метод возвращает json со следующими полями:
errorCode - код выполнения, 0 - успешно,
иначе - ошибка;
errorMessage - сообщение о результате
выполнения (успешном либо неуспешном).
Пример запроса:
POST /Synergy/rest/api/configuration HTTP/1.1
Host: localhost: 8080
Cache-Control: no-cache
Content-Type: multipart/form-data
{
"data" : "configuration_1697.xml",
"new_version" : "false",
"delete_rights" : "true"
}
Пример возвращаемого ответа:
{
"errorCode" : 0,
"errorMessage" : "The objects has been successfully imported"
}
Альтернативные потоки событий.
Альтернативный поток 1. Переданы некорректные параметры, сервер возвращает ошибку HTTP 400 c кодом ошибки 3.
Альтернативный поток 2. Недостаточно прав для импорта/не авторизован, сервер возвращает ошибку HTTP 403 с кодом ошибки 2.
Альтернативный поток 3. В случае других ошибок сервер возвращает ошибку HTTP 500.