You Cannot Update Or Delete The Document Since You Are Not Listed....

Тема в разделе "Lotus - Программирование", создана пользователем oleg7, 22 фев 2010.

  1. oleg7

    oleg7 Гость

    На QueryClose в строке
    Код (Text):
        Call note.Save( True, True, True )
    выдает ошибку: You cannot update or delete the document since you are not listed as allowable author for this document
    Пользователь, который заходит и сохраняет документ в ACL не указан, по умолчанию Автор+ роль на удаление и создание документов
    Как можно обойти ошибку
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    дать правильный доступ к док-ту пользователю.
    в документе есть Authors-поле, которое ограничивает доступ пользователя к документу.
     
  3. oleg7

    oleg7 Гость

    смысл в том, что как только он (пользователь) сохранил документ, то он уже не сможет его редактировать, а редактировать смогут лишь люди указанные в определенном поле

    Добавлено: поэтому добавить в Authors-поле его нельзя
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    так заданная задача и выполняется! :) пользователь уже сохранил документ, поэтому не имеет больше права сохранять его.

    осмелюсь предложить, что есть смысл в перепланировании логики приложения.
    может, будет корректнее внести состояния документа? например, в состоянии "новый" документ может изменяться пользователем сколь угодно раз, т.к. пользователь присутствует в А-поле. по окончанию редактирования, пользователь нажимает кнопку, которая переводит документ в состояние "проверка". при этом, этот пользователь удаляется из А-поля, а другие необходимые имена добавляются.
    и так добиваемся необходимой (описанной выше) работоспособности приложения.
     
  5. oleg7

    oleg7 Гость

    я вот думаю, можно на LS сделать так
    в QueryClose
    Код (Text):
    если пользователь не имеет роль1, тогда
    "Вы в дальнейшем не сможете редактировать документ"
    Call note.Save( True, True, True )
    иначе просто
    Call note.Save( True, True, True )
    1) но при это ошибка (я так полагаю) все равно будет высвечиваться
    2) как сделать эту проверку - 'если пользователь не имеет роль1, тогда'
    if <@UserRoles!=[роль1]> then
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    см справку по Evaluate()

    зы: может, постараешься описать более подробно задуманное еще раз, от начала и до конца? :)
     
  7. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Может в печурку использовать Evaluate для определения ролей?
    Есть же красивый db.QueryAccessRoles

    Мне кажется, сохранять док на QC - не комильфо.

    По-моему, Акупака предложил отличное решение: редактируй сколько влезет, нажал кнопку, из Authors пропал, документ закрылся. Всё.
     
  8. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    привычка :)
     
Загрузка...

Поделиться этой страницей