• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Private Folder

seoman2

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

savl

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

seoman2

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

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 601
312
BIT
216
Ошибок нет в работе? Права пользователя менялись?
 

seoman2

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

rinsk

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

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
507
1
BIT
70
Еще заметил, что в каких-то случаях после выполнения "If x.IsPrivate Then Call x.Remove", зависимости не вижу, приватная папка не создается у юзера.
 

Мыш

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

seoman2

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

Мыш

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

alexas

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

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

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