Постановка задачи
Необходимо программно лишить пользователя прав на документ. При этом необходимо выполнить проверку, что хотя бы один пользователь имеет полные права на документ. Иначе при сохранении документа будет сгенерировано исключение.
Программный код
User = ServiceFactory.GetUserByName('<имя пользователя>')
EDoc = EDocuments.GetObjectByID(<ИД документа>)
AccessRights = EDoc.AccessRights
Managers = AccessRights.Managers
Readers = AccessRights.Readers
Writers = AccessRights.Writers
// Если пользователь - единственный пользователь с полными правами,
//не лишать прав на документ
if not (Managers.Find(User) and (Managers.Count = 1))
if Managers.Find(User)
Managers.Delete(User)
endif
if Writers.Find(User)
Writers.Delete(User)
endif
if Readers.Find(User)
Readers.Delete(User)
endif
EDoc.Save
endif
Примечание
Программный код не учитывает прав, которые пользователь получает через группы, замещения или привилегии.
Как разработать для веб-доступа
Для реализации аналогичной задачи в веб-доступе необходимо вызывать сценарий, возвращающий относительный путь /users/....doc. Процессы Microsoft Word/Excel должны завершиться после завершения сценария.
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |