Назначение удаление прав пользователю на документ

  • Автор темы Автор темы phantom76
  • Дата начала Дата начала
P

phantom76

Как логически верно построить процесс?

Пользователю назначаются права на выполнение одноразового действия по документу,
он добавляется в Authors \ Readers поля, он открывает, выполняет действие, и необходимо, чтобы в конце этой акции удалить
его полномочия из полей Authors \ Readers , как понимаю, из под прав пользователя после удаления себя их этих полей сохранить док ему уже не удастся.

Какие есть варианты: ?

- в акции запускать агент под правами сервера или на сервере ?
- или что-то можно придумать еще?
 
Ну у меня сразу примерно такая же идея возникла:
пишем в какое-нить временное поле имя юзера, которого надо удалить и где-то на PostSave (точнее где-то после закрытия мне кажется) запускаем серверного агента с параметром NoteID обрабатываемого документа.
Агент выкидывает кого не надо из ридеров/авторов.

Может действительно есть лучше идеи?
 
Создавать копию документа. Пусть делает в нем что хочет. Агент потом собирает изменения в основной документ.
 
Создавать копию документа. Пусть делает в нем что хочет. Агент потом собирает изменения в основной документ.

а если в PostSave основного документа , отслеживать некий триггер и зупускать агент на сервере на очистку полей?
 
Если это делать в PostSave, то можем получить конфликт. Пользователь может продолжить работать с не измененным документом. Или в PostSave надо принудительно закрывать документ. Что не очень красиво.
Если в QueryClose, то может вообще не сработать.
 
Если это делать в PostSave, то можем получить конфликт. Пользователь может продолжить работать с не измененным документом. Или в PostSave надо принудительно закрывать документ. Что не очень красиво.
Если в QueryClose, то может вообще не сработать.
моем случае, документы закрываются принудительно, из дочернего, с начало дочерний после сохранения и за ним закрывается родительский документ, а после этого нужно отнять у текущего пользователя права даже на видимость этих доков..
поэтому в постсейв наверное будет как раз.
 
Как логически верно построить процесс?
Пользователю назначаются права на выполнение одноразового действия по документу,
он добавляется в Authors \ Readers поля, он открывает, выполняет действие...
Логически верно - дать права не на документ а на само действие.
Т.е. создать новый документ:
Форма: "право на выполнение одноразового действия по документу"
поля: действие ; документ-таргет ; пользователь

Именно на основании существования этого документа предоставляется право совершить действие. Действие ( результат действия ) - опять же документ, можно респонсом к праву. Действие обработать серверным агентом.
Вот как-то так...
 
Логически верно - дать права не на документ а на само действие.
Т.е. создать новый документ:
Форма: "право на выполнение одноразового действия по документу"
поля: действие ; документ-таргет ; пользователь

Именно на основании существования этого документа предоставляется право совершить действие. Действие ( результат действия ) - опять же документ, можно респонсом к праву. Действие обработать серверным агентом.
Вот как-то так...
Спасибо, я понял это вариант с реализацией через транзакции.. хороший вариант, по типу интертрастовских приложений..
я попытаюсь сделать пока по-проще..
 
А по-моему юзер сможет сам себя лишить доступа.
Сервер-же проверяет доступ к существующему в базе док-ту, а не тому образу, который в уме у юзера (на его раб.станции)

Так что нефиг мудрить :)
 
А по-моему юзер сможет сам себя лишить доступа.
Сервер-же проверяет доступ к существующему в базе док-ту, а не тому образу, который в уме у юзера (на его раб.станции)

Так что нефиг мудрить :)

Спасибо, проверю и этот вариант еще раз :)
 
А по-моему юзер сможет сам себя лишить доступа.
Сервер-же проверяет доступ к существующему в базе док-ту, а не тому образу, который в уме у юзера (на его раб.станции)

Так что нефиг мудрить
угу, вроде может


а если включена ф-ция Lock то точно сможет сам себя отшить
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!