При помощи сценария добавляются/удаляются права на подписание типа документа, а не конкретного документа.
В сценарии используются переменные:
"Документ" - тип объект Документ
"Пользователь" – Пользователь, подписывающий документ, тип объект Пользователь
Нужно объявить пространства имен:
using EleWise.ELMA.Documents.Metadata;
using EleWise.ELMA.Model.Metadata;
using EleWise.ELMA.Model.Services;
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).
Статья была просмотрена 689 раз.
Похожие статьи
