• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

запрет на удаление документов с конкретного представления

  • Автор темы lionk
  • Дата начала
L

lionk

ктото знает как запертить удалять доки из определёных представлений,
я так понимаю надо обрабатывать событие Querydocumentdelete, но никак не могу найти где выбраны документы направленные на удаление.

может ктото уже подобное пытался реализовать?
 
L

lionk

Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
Dim ddoccol As NotesDocumentCollection
Dim ddoc As NotesDocument

Set ddoccol=Source.Documents
Set ddoc=ddoccol.GetFirstDocument
Print ddoc.ParentView.Name
Print ddoc.ParentView.Aliases(0)
End Sub


свойство ddoc.ParentView - пустое

свойство Source.Database.Unprosseddocuments - содержит 0 документов незвисимо от количества удаляемых документов

может ещё чтото посоветуете?
 
G

Guest

Лучше бери NotesUIWorkspace.CurrentView.View, это точно сработает.
 
O

Omh

Для: lionk
А для чего такая проверка?
В целях защиты или что-то?
 
O

Omh

Коллекцию удаляемых документов надо брать через db.UnprocessedDocuments без вопросов.
Просто добавить проверку вида

Код:
Const PROTECTED_VIEW_NAME = "View"

Dim ws as New NotesUIWorkspace
Dim UIView as NotesUIView
Set UIView = ws.CurrentView
if Not UIView is Nothing then
dim View as NotesView
Set View = UIView.View
if View.Name = PROTECTED_VIEW_NAME then
Continue = False
Exit Sub
end if
End if

Там можно/нужно проверять на алиасы, но это я так, псевдокод типа накидал B)


Для: lionk
А ты там случаем не через script удаляешь?
Типа doc.Remove(True)?
 
L

lionk

Через NotesUIWorkspace можно получить имя вида, потестил вроде работает нормально, чёто я совсем забыл что можно юзать NotesUIWorkspace в Database


Для: Omh
код нормальный токо исправь, Dim ws as New NotesUIWorkspace.

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

Но база мною токо поддерживается и во всю логику вникать лень, то тупой заперт кнопочного удаления из определённых представлений решит мою проблему.

всем спасибо, тема закрыта.
 
Мы в соцсетях:

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