• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Querydocumentdelete

  • Автор темы yerke
  • Дата начала
Y

yerke

Здравствуете, знатоки лотуса!
Обрабатываю событие QueryDocumentDelete.
Возник следующий вопрос: можно ли программно узнать , имеет ли юзер права на удаление документов, до того как об этом дать знать сама система(ну выдаст сообщение, если у юзера нету таких прав).
 
M

morpheus

CanDeleteDocuments property

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

This script creates an entry for Eben Klemm in the current database and gives him Author access. It gives him the right to create documents in the database and denies him the right to delete documents.
Код:
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
 
O

Omh

Для yerke:
Как альтернатива QueryAccessPrivileges у NotesDatabase.

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

morpheus

<!--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]
Да , скорее это будет даже лучше
 
Y

yerke

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

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

или запрещает удалят определенный обрабатываемый циклом документ
например если так
Код:
		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 при удалении дока программно?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
1. Само событие не удаляет документ. Документы удаляются после обработки события. Поэтому Continue = False запретит удалить все документы.
2. Нет. События возникают только при работе пользователя в UI.
3. Если notesDocument.Remove, то нет. Если notesUIDocument.DeleteDocument, то да.
 
Y

yerke

Для: 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
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
<!--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]
Запретить всем удаление и удалять агентом.
 
G

Guest

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

Не Continue=True или Continue=False нужно ставить,а notesDocument.Remove...и не по коллекции бегать, а по юнидам и по условию... :D :D :D
 
Мы в соцсетях:

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