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

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

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

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

У вью и папки одинаковый дизайн

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

yerke

есть такой код
Код:
Sub Postopen(Source As Notesuidatabase)
'=
Dim ses As NotesSession
Dim cdb As NotesDatabase
Dim roles As Variant
Dim is_reg As Boolean
Dim foldername As String
Dim nm As NotesName
Dim accPriv As Long
'=
'=создать рабочие папки для каждого регистратора=
Set ses=New NotesSession
Set cdb=ses.CurrentDatabase
'=
roles=cdb.QueryAccessRoles(Cstr(ses.UserName))	
is_reg=False
'=
Forall role In roles
If Cstr(role)="[REGISTRAR]" Then
is_reg=True
Exit Forall
End If
End Forall
'=
If is_reg Then
'=
accPriv = cdb.QueryAccessPrivileges(Cstr(ses.UserName))
'=
If ((accPriv And DBACL_CREATE_PRIV_FOLDERS_VIEWS) > 0) And _
((accPriv And DBACL_CREATE_SHARED_FOLDERS_VIEWS) > 0) Then
'=
Set nm=ses.CreateName(Cstr(ses.UserName))
foldername="(REG-FOL-ONE-"+Cstr(nm.Common)+")"
Call cdb.EnableFolder(foldername)
Evaluate({@IfError(@UpdateViewDesign("}+foldername+{"; "IUPs"); "");})
Print {Folder "}+foldername+{" created.}
'=
End If	
'=
End If
'=
End Sub
здесь создаю папку (дизайн у папки по умальчанию такая же как у вьюшки, где есть опция Default Design....):
Call cdb.EnableFolder(foldername)

потом на папку накатываю дизайн определенной вьюшки, в нашем случае вью "IUPs"
Evaluate({@IfError(@UpdateViewDesign("}+foldername+{"; "IUPs"); "");})

так вопрос
как проверить дизайн вьюшки "IUPs" и дизайн папки одинаковые

если это можно было бы каким то способом определить,
то можно было бы не каждый раз использовать это:
Код:
Evaluate({@IfError(@UpdateViewDesign("}+foldername+{"; "IUPs"); "");})

так как оно силно жрет ресурсы
 
O

Omh

Ну, как вариант, можно пробежаться по пропертям NotesView и NotesViewColumn которые они содержат.
Я думаю, этого будет достаточно.
 
Y

yerke

nvy
с DXL не очен понятно, разве вью можно обработать DXLExporter-ом, оно же для БД, документов, рт полей

Omh
Была идея такая

но хотелось бы знать в лотусе есть у документов
(по сути вьюшка или все остальные элементы дизайна являются доками, или я не прав)
такие поля и флаги , которые содержать данные об их дизайне (обновлениях) ?
 
N

nvyush

Set view = db.GetView("MyView")
Set docView = db.GetDocumentByUNID(view.UniversalID) '???
Далее DXL-экспорт в поток, получаем строку, "выкусываем", то, что относится к дизайну, сравниваем. В принципе, наверное можно также сравнивать дату последнего обновления. Если у эталонной вьюхи дата обновления позже, значит дизайн изменился.
 
Мы в соцсетях:

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