Блокировка документа

  • Автор темы Автор темы Kizarek86
  • Дата начала Дата начала
а придёться... если из режима чтения в режим редактирования то ... получиться такая вот ситуация
Не получится. Перед редактированием документ блокируется. И если документ был изменен во время просмотра, то лотус ругнется.
 
Где?

flag = notesDocument.Lock( [ name ] [, provisionalOK ] )

Parameters
name - Array of type String. Optional. The names of the lock holders. Each lock holder must be a user or group. Defaults to one lock holder: the effective user. The empty string ("") is not permitted in the array.

provisionalOK - Boolean. Optional.
True permits the placement of a provisional lock.
False (default) does not permit a provisional lock.

Return value
flag - Boolean.
True if the lock is placed.
False if the lock is not placed.

Usage
IsDocumentLockingEnabled in NotesDatabase must be True or this method raises an error.
This method:
Places a persistent lock if the administration (master lock) server is available.
Places a provisional lock if the administration server is not available and the second parameter is True.
Raises an error if the administration server is not available and the second parameter is False.
The following actions occur depending on the current lock status:
If the document is not locked, this method places the lock and returns True.
If the document is locked and the current user is one of the lock holders, this method returns True.
If the document is locked and the current user is not one of the lock holders, this method returns False.
If the document is modified by another user before the lock can be placed, this method raises an error.

В хелпе написано, зачем же спрашивать? :)
Ну вот зачем, а? :) раз спрашиваю, значит не написано, а сам не юзал :)

А разве есть задача заблокировать документ от чтения?

В самом первом посте было указано, что блокировка при открытии на чтение должна быть, вот логически мне показалось, что должна быть блокировка на чтение заблокированного документа... моя личная догадка, мож и не надо :)

а придёться... если из режима чтения в режим редактирования то ... получиться такая вот ситуация

асболютно ниче интересного не вычитал... вообще, станно, что у них не создался конфликт...
 
Akupaka
А, ты про это. Я думал про это:
Подозреваю, сервер посмотрит поле $Writers.
В хелпе не написано что такое блокировка и где признак хранится. Я думаю, что просто в поле $Writers. Можно попробовать вручную создать такое поле и посмотреть что будет.

Ну вот зачем, а? smile.gif раз спрашиваю, значит не написано, а сам не юзал smile.gif
Хелп говорит. :)
When you set the database property "Allow document locking," users with Author access or higher can lock documents in that database.

В самом первом посте было указано, что блокировка при открытии на чтение должна быть, вот логически мне показалось, что должна быть блокировка на чтение заблокированного документа... моя личная догадка, мож и не надо
Там написано, что она есть. А вот для чего она нужна не понятно. :)
Возможно она нужна, чтобы решить проблему, когда во время чтения документ меняется. Но стандартная блокировка эту проблему нормально решает, как я написал выше.
 
та по-моему тема про велосипед вообще ;)

а это видать (как всегда) написали в документе про галку, а не про метод :)
When you set the database property "Allow document locking," users with Author access or higher can lock documents in that database.
 
а это видать (как всегда) написали в документе про галку, а не про метод smile.gif
Ага. :)
Кстати, если не ошибаюсь, в 6-ке был глюк, когда юзер с правами Readers может заблокировать документ, если откроет документ из представления по ctrl-e. Видимо, права на редактирование проверялись после блокировки. ;)
В 7-ке всё работает как надо.
 
но заблокировать документ от чтения можно лишь явно кодом в QueryOpen, и то только УИ! а бэкэнд?.. если, конечно, надо :)
В backend - точно так-же, как и в UI для read: явно обратившись к ф-ции Lock


В хелпе не написано что такое блокировка и где признак хранится. Я думаю, что просто в поле $Writers
Когда-то на ibm-овском мероприятии докладывали:
provisonal-блокировка нигде не хранится. Точнее - в мозгах у сервака. Поэтому она не "зависает" при аварийном слете сеанса пользователя, док-т автоматом освобождается (вот не помню: сразу или по тайм-ауту)
"Глобальная" блокировка - это действительно поле.
 
provisonal-блокировка нигде не хранится. Точнее - в мозгах у сервака. Поэтому она не "зависает" при аварийном слете сеанса пользователя, док-т автоматом освобождается (вот не помню: сразу или по тайм-ауту)
"Глобальная" блокировка - это действительно поле.
а можно перевести что есть provisonal блокировка?
 
это временная

2 Constantin A Chervonenko :
т.е. заблокированный док нельзя прочесть? я думал, что его нельзя сохранить... надо самому попробовать ;)
 
Когда клиент открывает док-т в UI для редактирования, он автоматом поднимает на него (provisional?) Lock.
Если док-т открывается в background, то на совести автора кода: лочить док-т или нет.
Если док-т открывается в UI, но read-only, опять-же к компетенции автора кода: не сделать-ли Lock гдени-ть в QueryOpen формы - получится "защита" от чтения
 
да, но, если lock установлен, то кто-то другой ведь сможет документ читать?! т.е. блокировка от чтения не предусмотрена в лотусе?.. :rolleyes:
 
Возможно ли так задать параметры агента чтобы он перекрывал уровень доступ пользователя?

Допустим пользователь без прав на создание документов в базе, но необходимо создать документ?
 
ну, если только создать, то можно попробовать сделать по кнопке запуск агента на сервере, он создаст док, даст пользователю на него права (только по роли, т.к. имя текущего пользователя вряди достанем серверным агентом), а пользователь его откроет на редактирование уже из вида...
 
ну, если только создать, то можно попробовать сделать по кнопке запуск агента на сервере, он создаст док, даст пользователю на него права (только по роли, т.к. имя текущего пользователя вряди достанем серверным агентом), а пользователь его откроет на редактирование уже из вида...
Как он его откроет на редактирование, если у него прав нет на создание? Точнее он откроет, но сохранить не сможет. Опять серверный агент нужен. А как его вызвать, если документ не сохранен? :)

А скорее всего он его даже на редактирование не откроет. :)
 
Мы в соцсетях:

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