Формулировка проблемы: при попытке удаления работы с помощью API метода "rest/api/workflow/work/delete" необходимо указывать логин и пароль автора работы. Но так как пользователей системы множество, к тому же они могут изменять пароли, это становится неосуществимым.
Решение: необходимо решить указанную проблему следующим образом. Для каждого внешнего модуля системы будет создан пользователь, а ему генерируется ключ. Данный пользователь не имеет логина и пароля, а также не добавляется в картотеку и не отображается в списке залогиненных пользователей. Он будет иметь те же права, что и новый созданный пользователь, не назначенный на должность, но с дополнительными правами на удаление работ следующих типов:
работа;
согласование;
утверждение;
ознакомление;
резолюция;
регистрация.
При удалении внешнего модуля так же будет удален и данный пользователь. При этом удалить этого пользователя отдельно от модуля невозможно.
Интерфейс
Для реализации данного функционала необходимо доработать подраздел конфигуратора "Внешние модули" (Конфигуратор -> Настройки системы -> Управление модулями -> Внешние модули).
В нем будет добавлена группа настроек "Системный пользователь внешнего модуля". Заголовок группы имеет кнопку "?" по нажатию на которую отобразится всплывающая подсказка с текстом:
Указанные имя и фамилия будут отображаться в качестве пользователя, совершающего действия данного модуля в системе и в логах приложения
В данную группу входят поля:
"Фамилия";
"Имя";
"Ключ".
Поля "Фамилия" и "Имя" обязательны для заполнения. При создании нового внешнего модуля поле "Фамилия" по умолчанию имеет значение Модуль, а поле "Имя" заполняется автоматически из названия внешнего модуля (из локали С).
Если такое поле останется пустым, то при попытке сохранения внешнего модуля оно подсветится красным и отобразится ошибка с текстом:
Заполните все обязательные поля
Поле "Ключ" никогда не доступно для редактирования. Его значение автоматически генерируется при успешном сохранении внешнего модуля. До тех пор, пока модуль не был сохранен, данное поле имеет такой плейсхолдер:
Для генерации ключа сохраните внешний модуль
Удаление работы
При удалении работы в ходе выполнения в столбце "Завершил" будут отображаться фамилия и имя, указанные в настройках внешнего модуля и соотвествующие ключу, с помощью которого было выполнено данное действие. Также эти фамилия и имя будут использоваться при логировании действий, выполненных при помощи данного ключа.
Действия при обновлении системы
Для всех внешних модулей системы добавится группа настроек "Системный пользователь внешнего модуля", для которой будет сгенерирован ключ. Остальные два поля заполнятся по умолчанию. Других видимых изменений быть не должно.