[ELMA3] Добавление/удаление прав на подписание документа
При помощи сценария добавляются/удаляются права на подписание типа документа, а не конкретного документа.
В сценарии используются переменные:
Документ – тип объект Документ;
Пользователь – пользователь системы, подписывающий документ, тип – объект Пользователь
Нужно объявить пространства имен:
1 2 3 4 5 6 7 | 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. Добавление прав доступа на подписание документа.
Текст сценария:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | //Загружаем метаданные 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. Удаление прав на подписание документа.
Текст сценария:
1 2 3 4 5 6 7 8 | //Загружаем метаданные 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).