Формулировка проблемы: пользователь может удалить файл по форме реестра либо добавить новую версию файла по форме, которая не будет соответствовать основному файлу по форме (файл с другим расширением либо файл по форме, основанный на другой форме).
Используется:
Хранилище -> Реестры -> раздел "Файлы"
Решение: необходимо запретить удаление основного файла по форме реестра, а также запретить добавление новой версии для основного файла по форме реестра. В данном случае в качестве основного файла по форме подразумевается тот файл по форме, который был добавлен в папку "Приложения" записи реестра при создании реестра и соответствует форме, указанной в настройках реестра.
При выборе пункта "Новая версия" контекстного меню основного файла по форме система возвращает ошибку:
Невозможно добавить новую версию для основного файла по форме
При выборе пункта "Удалить" контекстного меню основного файла по форме система возвращает ошибку:
Невозможно удалить основной файл по форме
Данные запреты относятся только к основному файлу по форме. Для других добавленных файлов по форме удаление и добавление новой версии останется доступным (в соответствии с правами).
Изменения в API
Для API метода transferDocumentAttachments -
трансфера файлов из одного документа в другой
rest/api/docflow/doc/attachment/transfer,
необходимо добавить следующие альтернативные потоки:
Альтернативный поток 1. В качестве значения параметра
fileCollision используется
version, и название или идентификатор
отправляемого файла совпадает с названием либо идентификатором
основного файла по форме записи реестра, в которую передаются
файлы. Сервер возвращает ошибку HTTP 403 с текстом:
{
"errorCode": 2,
"errorMessage" : "Невозможно добавить новую версию для основного файла по форме"
}
Альтернативный поток 2. В качестве значения параметра
fileCollision используется
overwrite, и название или идентификатор
отправляемого файла совпадает с названием либо идентификатором
основного файла по форме записи реестра, в которую передаются
файлы. Сервер возвращает ошибку HTTP 403 с текстом:
{
"errorCode": 2,
"errorMessage" : "Невозможно удалить основной файл по форме"
}
Для API метода move - перемещения файла или папки
в хранилище rest/api/storage/move, необходимо
добавить следующий альтернативный поток:
Альтернативный поток 1. Пользователь пытается переместить основной файл по форме записи реестра. Сервер возвращает ошибку HTTP 200 с текстом:
{
"errorCode": "13",
"errorMessage" : "Невозможно переместить основной файл по форме"
}
Для API методов:
deleteAttachment - удаления файлов документа
rest/api/docflow/doc/attachment/remove
deleteAttachment - удаления файлов работы
rest/api/workflow/work/remove_file
remove - удаления файлов и папок из хранилища
rest/api/storage/remove
необходимо добавить следующий альтернативный поток:
Альтернативный поток 1. Пользователь пытается удалить основной файл по форме записи реестра. Сервер возвращает ошибку HTTP 200 с текстом:
{
"errorCode": "13",
"errorMessage" : "Невозможно удалить основной файл по форме"
}
Тип запроса, входные и выходные данные вышеуказанных методов не изменяются.