[ELMA3] Добавление/удаление прав на подписание документа
При помощи сценария добавляются/удаляются права на подписание типа документа, а не конкретного документа.
В сценарии используются переменные:
Документ – тип объект Документ;
Пользователь – пользователь системы, подписывающий документ, тип – объект Пользователь
Нужно объявить пространства имен:
using EleWise.ELMA.Documents.Metadata; using EleWise.ELMA.Model.Metadata; using EleWise.ELMA.Security; using EleWise.ELMA.Documents.Managers; using EleWise.ELMA.Documents.Models; using EleWise.ELMA.Documents; using EleWise.ELMA.Services;
1. Добавление прав доступа на подписание документа.
Текст сценария:
//Загружаем метаданные
var metadata = (DocumentMetadata)MetadataLoader.LoadMetadata(context. Document.TypeUid);
var profile = DocumentMetadataProfileManager.Instance.LoadByDocumentType(metadata.ImplementationUid);
//Добавляем права на подписание
profile.Permissions.Add( new InstanceOf<IDmsObjectDefaultPermissions>
{
New =
{
DocumentMetadataProfile = profile,
PermissionId = DocflowPermissionProvider.DocumentMetadataSignInstance.Id,
TypeRoleId = CommonRoleTypes.User.Id,
Assigned = context.Poljzovatelj
}
}.New);
profile.Save();
В результате после выполнения сценария пользователь (переменная Poljzovatelj) получит права на подписание документа (переменная Document).
2. Удаление прав на подписание документа.
Текст сценария:
//Загружаем метаданные var metadata = (DocumentMetadata)MetadataLoader.LoadMetadata(context.Document.TypeUid); var profile = DocumentMetadataProfileManager.Instance.LoadByDocumentType(metadata.ImplementationUid); //Задаем права доступа, которые хотим удалить var permToDel = profile.Permissions.FirstOrDefault(p => p.DocumentMetadataProfile == profile && p.PermissionId == DocflowPermissionProvider.DocumentMetadataSignInstance.Id && p.TypeRoleId == CommonRoleTypes.User.Id && p.Assigned == context. Poljzovatelj); //Удаляем права на подписание profile.Permissions.Remove(permToDel); profile.Save();
В результате после выполнения сценария у пользователя (переменная Poljzovatelj) удалятся права на подписание документа (переменная Document).