Формулировка проблемы: пользователь может удалить файл по форме реестра либо добавить новую версию файла по форме, которая не будет соответствовать основному файлу по форме (файл с другим расширением либо файл по форме, основанный на другой форме).
Используется:
Хранилище -> Реестры -> раздел "Файлы"
Решение: необходимо запретить удаление основного файла по форме реестра, а также запретить добавление новой версии для основного файла по форме реестра. В данном случае в качестве основного файла по форме подразумевается тот файл по форме, который был добавлен в папку "Приложения" записи реестра при создании реестра и соответствует форме, указанной в настройках реестра.
При выборе пункта "Новая версия" контекстного меню основного файла по форме система возвращает ошибку:
Невозможно добавить новую версию для основного файла по форме
При выборе пункта "Удалить" контекстного меню основного файла по форме система возвращает ошибку:
Невозможно удалить основной файл по форме
Данные запреты относятся только к основному файлу по форме. Для других добавленных файлов по форме удаление и добавление новой версии останется доступным (в соответствии с правами).
Изменения в 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" : "Невозможно удалить основной файл по форме" }
Тип запроса, входные и выходные данные вышеуказанных методов не изменяются.