Querydocumentdelete

Тема в разделе "Lotus - Программирование", создана пользователем yerke, 11 окт 2007.

  1. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    Здравствуете, знатоки лотуса!
    Обрабатываю событие QueryDocumentDelete.
    Возник следующий вопрос: можно ли программно узнать , имеет ли юзер права на удаление документов, до того как об этом дать знать сама система(ну выдаст сообщение, если у юзера нету таких прав).
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    CanDeleteDocuments property

    это свойство сидит у NotesACLEntry

    Код (Text):
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim acl As NotesACL
    Dim entry As NotesACLEntry
    Set db = session.CurrentDatabase
    Set acl = db.ACL
    Set entry = New NotesACLEntry _
    ( acl, "Eben Klemm/East/ACME", ACLLEVEL_AUTHOR )
    entry.CanCreateDocuments = True
    entry.CanDeleteDocuments = False
    Call acl.Save
     
  3. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Для yerke:
    Как альтернатива QueryAccessPrivileges у NotesDatabase.

    Для: Morpheus
    КМК, если юзер будет в группе, через NotesACL будет сложновато понять, что у него за права.
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-Omh+11:10:2007, 15:48 -->
    <span class="vbquote">(Omh @ 11:10:2007, 15:48 )</span><!--QuoteEBegin-->Как альтернатива QueryAccessPrivileges у NotesDatabase.
    [snapback]81441" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Да , скорее это будет даже лучше
     
  5. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    работаю на лотусе 5,0,8
    там еще не появился метод QueryAccessPrivileges :)
    так что наверное буду использовать notesaclentry
    тем более у меня в акл нету юзеров которые сидят в группе

    придется еще раз спросить
    :D
    1)как работает событие Querydocumentdelete точнее параметр Continue
    если поставить Continue=false, то он запрещает удалят все документы, полученные с помощью UnprocessedDocuments?

    или запрещает удалят определенный обрабатываемый циклом документ
    например если так
    Код (Text):
            Dim curdb As notesdatabase
    Set curdb=source.database
    Dim udc As notesdocumentcollection
    Set udc=CurDB.UnprocessedDocuments 
    If udc.count=0 Then Exit Sub
    Dim tdoc As notesdocument
    Dim nxtdoc As notesdocument

    Set tdoc=udc.getfirstdocument
    Dim i As Integer
    For i=1 To udc.count
    Set nxtdoc=udc.getnextdocument(tdoc)
    If i=3 Then
    Continue=True
    Else
    Continue=False
    End If     
    Set tdoc=nxtdoc
    Next
    то удаляется тока 3-ий по порядку документ или как?

    2) допустим при удалении документа должен удалятся вместе связанные с этим доком(ну у них определенное поле содержит одинаковое значение) другие доки
    отбираю эти доки с помощью search и вызываю Call notesDocumentCollection.RemoveAll(true)
    объясните при вызове Call notesDocumentCollection.RemoveAll(true) что происходит?
    опять поднимается событие Querydocumentdelete?
    ведь Call notesDocumentCollection.RemoveAll(true) находится внутри Querydocumentdelete.

    3) поднимается ли событие Querydocumentdelete при удалении дока программно?
     
  6. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    1. Само событие не удаляет документ. Документы удаляются после обработки события. Поэтому Continue = False запретит удалить все документы.
    2. Нет. События возникают только при работе пользователя в UI.
    3. Если notesDocument.Remove, то нет. Если notesUIDocument.DeleteDocument, то да.
     
  7. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    Для: Medevic
    Для: Morpheus
    Для: Omh
    спасибо за подробные ответы ребята
    :)

    <!--QuoteBegin-Medevic+12:10:2007, 07:32 -->
    <span class="vbquote">(Medevic @ 12:10:2007, 07:32 )</span><!--QuoteEBegin-->3. Если notesDocument.Remove, то нет. Если notesUIDocument.DeleteDocument, то да.
    [snapback]81499" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    но как тогда перехватить программное удаление доков
    :D
     
  8. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-yerke+12:10:2007, 09:40 -->
    <span class="vbquote">(yerke @ 12:10:2007, 09:40 )</span><!--QuoteEBegin-->но как тогда перехватить программное удаление доков
    [snapback]81500" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Запретить всем удаление и удалять агентом.
     
  9. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.291
    Симпатии:
    0
    Так-же, как и программное изменение док-тов :)

    Серьезно - hook-ами. Но лучше не надо
     
  10. Гость

    Не Continue=True или Continue=False нужно ставить,а notesDocument.Remove...и не по коллекции бегать, а по юнидам и по условию... :D :D :D
     
Загрузка...
Похожие Темы - Querydocumentdelete
  1. wowa
    Ответов:
    3
    Просмотров:
    2.545

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