Права доступа

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
37
Украина, Одесса
#1
Можно ли изменить поле $Readers?

Ситуация: разработан новый дизайн БД, в котором добавлены некоторые роли. Если раньше поле $Readers содержало А,В то теперь нада А,В,С.

С новыми доками все понятно, а как мне быть со старыми???

И ещё: можно ли вообще очичтить поле $Readers, потому как я использую теперь только своё собственное созданное поле Readers/

Спасибо.
 
H

Hedg

Гость
#2
Dim doc As NotesDocument
Dim noteid As String

Set doc =Source.Document
Set fBase=doc.GetFirstItem( "base" )
sBase=fBase.Values(0)

number = doc.GetItemValue( "Number" )
Set iReader=doc.GetFirstItem( "Reader" )
 
E

Elena Nefedova

Гость
#3
Можно ли изменить поле $Readers?
Да, можно. Только когда вы меняете значение скриптом, необходимо убедиться, что флаг IsReaders все еще установлен для него.
Т.е., нужно получить это поле в объектную переменную и обработать
Код:
	Dim itm as NotesItem
Set itm = doc.GetFirstItem("ReadersList")
itm.IsReaders = True
можно ли вообще очичтить поле $Readers
Код:
If doc.HasItem("OldReaders") then Call doc.RemoveItem("OldReaders")
ВНИМАНИЕ - это надо сделать после того, как созданы другие поля типа Readers, в которые вы включены (либо удалять сразу все поля такого типа в документе), так как даже менеджер не может видеть документ с непустым полем Readers, в котором он не упомянут. Предварительный бекап - это хорошее решение.
 

Constantin A Chervonenko

Well-Known Member
Lotus team
#5
..- это надо сделать после того, как созданы другие поля типа Readers, в которые вы включены (либо удалять сразу все поля такого типа в документе), так как даже менеджер не может видеть документ с непустым полем Readers, в котором он не упомянут.
"Лазейка" для спасения закрытых документов: открыть базу локально, счистив (если был взведен) флажок Enf.consict.ACL
Понятно, что нужен физический доступ