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

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

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

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

Private Folder

seoman2

Green Team
17.02.2010
504
1
BIT
45
Создаю private folder, юзер его открывает, потом я делаю изменения в приватной папке.
У юзера остается старая папка.
В дизайнере в списке папок отображается изначальная папка, и все.
Как правильно делать изменения в дизайнере у приватных папок, и удалять старые версии папки у юзеров?
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
179
Естественно, ты же поменял не его папку, а общую до первого использования.
начинаем читать отсюда: https://codeby.net/threads/30752 говорим спасибо nvy за идею удаления
еще тут:
и тут:
За ссылки, спасибо lmike
 

seoman2

Green Team
17.02.2010
504
1
BIT
45
Итог. На двух похожих базах повесил на терминате код:

Dim ss As New NotesSession
Dim db As NotesDatabase

On Error Resume Next

Set db = ss.CurrentDatabase
viewList = db.Views

Forall x In viewList
If x.IsPrivate Then
Call x.Remove
'Msgbox x.Name
End If
End Forall

В базе 1 все ок, а в базе 2 через неделю работы приватная папка перестала создаваться!
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
179
Ошибок нет в работе? Права пользователя менялись?
 

seoman2

Green Team
17.02.2010
504
1
BIT
45
Ничего не менялось, в том то и дело.
Выбрал по новой в дизайнере в оутлайне ту же папку, заработало.
 

rinsk

Lotus Team
12.11.2009
1 151
125
BIT
3
Итог. На двух похожих базах повесил на терминате код:

Dim ss As New NotesSession
Dim db As NotesDatabase

On Error Resume Next

Set db = ss.CurrentDatabase
viewList = db.Views

Forall x In viewList
If x.IsPrivate Then
Call x.Remove
'Msgbox x.Name
End If
End Forall

В базе 1 все ок, а в базе 2 через неделю работы приватная папка перестала создаваться!

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

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
приватные виды/папки видны только под Full Access
от лица пользователя видны только ЕГО папки/виды
 

seoman2

Green Team
17.02.2010
504
1
BIT
45
Еще заметил, что в каких-то случаях после выполнения "If x.IsPrivate Then Call x.Remove", зависимости не вижу, приватная папка не создается у юзера.
 

Мыш

Lotus Team
12.02.2008
1 220
29
BIT
67
Еще заметил, что в каких-то случаях после выполнения "If x.IsPrivate Then Call x.Remove", зависимости не вижу, приватная папка не создается у юзера.
Дык а удаляться-то удаляется?
Чиста теоретиццки - если вид может кастомизироваться юзером, то кастомные настройки хранятся локально (в desktop или где там...). Настройки, сортировки, кстати, тоже. Мож, они и не дают корректно удалять?
И еще вопрос - а не "сидит" ли пользователь в этом виде перед закрытием?
 

seoman2

Green Team
17.02.2010
504
1
BIT
45
"И еще вопрос - а не "сидит" ли пользователь в этом виде перед закрытием?" - да, в базе у юзера используется только одна приватная папка, для каждого своя.
 

Мыш

Lotus Team
12.02.2008
1 220
29
BIT
67
seoman2, хммм... Мож, вызвать close объекта UIView? Правда, не знаю, в каком событии сработает..
 
A

alexas

seoman2, хммм... Мож, вызвать close объекта UIView? Правда, не знаю, в каком событии сработает..
Уишные классы в Database Script работать не будут.
А удалять приватные папки-виды лучше на Initialize. На Terminate могут быть трудно диагностируемые неприятности, да и при возможном крахе клиента или некорректном выходе из базы (напр. при пропадании электричества) папки не будут удалены.

(..... приватная папка не создается у юзера) это как? - открывается "Shared, private in first use" как "Shared"?
 
Мы в соцсетях:

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