Задача [0524]: Запрет на удаление файла (и загрузку новой версии) по форме реестра

Формулировка проблемы: пользователь может удалить файл по форме реестра либо добавить новую версию файла по форме, которая не будет соответствовать основному файлу по форме (файл с другим расширением либо файл по форме, основанный на другой форме).

Используется:

Решение: необходимо запретить удаление основного файла по форме реестра, а также запретить добавление новой версии для основного файла по форме реестра. В данном случае в качестве основного файла по форме подразумевается тот файл по форме, который был добавлен в папку "Приложения" записи реестра при создании реестра и соответствует форме, указанной в настройках реестра.

При выборе пункта "Новая версия" контекстного меню основного файла по форме система возвращает ошибку:

Невозможно добавить новую версию для основного файла по форме

При выборе пункта "Удалить" контекстного меню основного файла по форме система возвращает ошибку:

Невозможно удалить основной файл по форме

Данные запреты относятся только к основному файлу по форме. Для других добавленных файлов по форме удаление и добавление новой версии останется доступным (в соответствии с правами).

Изменения в 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 методов:

необходимо добавить следующий альтернативный поток:

Альтернативный поток 1. Пользователь пытается удалить основной файл по форме записи реестра. Сервер возвращает ошибку HTTP 200 с текстом:

{
"errorCode": "13",
"errorMessage" : "Невозможно удалить основной файл по форме"
}

Тип запроса, входные и выходные данные вышеуказанных методов не изменяются.