Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Постановка задачи

Необходимо программно лишить пользователя прав на документ. При этом необходимо выполнить проверку, что хотя бы один пользователь имеет полные права на документ. Иначе при сохранении документа будет сгенерировано исключение.

Программный код

 

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
.navbar > a:hover { background: #FFD73B; }