<< Click to Display Table of Contents >> Разработка > Примеры разработки > Документы Как настроить шифрование договоров |
Ситуация
Предположим, необходимо, чтобы пользователи могли шифровать только договоры. Для всех остальных документов кнопка в карточке не должна отображаться. Кроме того, при попытке зашифровать договор должен появляться диалог подтверждения.
ВАЖНО. Шифрование документов возможно, если развернут сервис ключей.
Решение
Переопределим логику действия ToggleEncryption. Для этого:
1.В своем решении перекройте тип документа «Договор» (Sungero.Contracts.Contract).
2.В редакторе решения добавьте зависимость от модуля «Договоры» (Sungero.Contracts).
3.В редакторе перекрытого типа документа перейдите в узел «Действия». В списке элементов выберите действие ToggleEncryption.
4.Установите флажок рядом с обработчиком Выполнение / Возможность выполнения и перейдите по ссылке.
5.Чтобы изменить стандартную логику, в открывшемся редакторе переопределите функции ToggleEncryption() и CanToggleEncryption(). Для этого напишите код:
public override void ToggleEncryption(Sungero.Domain.Client.ExecuteActionArgs e)
{
// Создать диалог подтверждения.
var dialog = Dialogs.CreateConfirmDialog("Вы уверены, что хотите включить шифрование?");
// Зашифровать документ при подтверждении.
if (dialog.Show())
{
base.ToggleEncryption(e);
}
}
public override bool CanToggleEncryption(Sungero.Domain.Client.CanExecuteActionArgs e)
{
// Показать кнопку шифрования, если документ – договор.
return _obj.AccessRights.CanManage();
}
ВАЖНО. Шифруется и содержимое версии документа (Body), и его представление (PublicBody).
6.Опубликуйте разработку.
В результате в карточках договоров появится кнопка, при нажатии появится окно подтверждения.
Также включить шифрование для нужных типов документов может администратор.
© Компания Directum, 2024 |