2014-09-24 53 views
0

有没有办法将文档中的文档设置为仅供特定用户使用?我有一个namesPicker,它接受来自names.nsf数据库的所有用户,并且我希望允许文档的创建者对文档进行保护。文档的创建者将从names.nsf数据库中选择哪个用户可以在视图中看到文档,然后将其打开。有没有办法做到这一点?Xpages ACL查看

我在想,使用namesPicker,我只能得到用户名的字符串值,以及如何将这些文档保护给那些特定用户?

我已经创建了文档,唯一缺少的就是这个保护问题,我认为这不容易完成。

回答

4

使用setReaders(true)为您的文档项目

var doc = document1.getDocument(true); 
var item:NotesItem = doc.replaceItemValue("Readers", namesPickerValue); 
item.setReaders(true); 

这使你的项目的 “读者” 属性。只有该字段中列出的人或组才被允许阅读文档。

namesPickerValue可以是字符串或字符串数​​组或字符串或列表。请确保名称是正规的,如“CN = Knut Herrmann/O = Leonso”或作为常用名称,如“Knut Herrmann”(不推荐)。格式“Knut Herrmann/Leonso”不起作用。

下面是用于将在字段“inputText1”所列规范格式和名称的示例代码写入到读者项作为读者字段:

var doc = document1.getDocument(true); 
var value = getComponent("inputText1").getValue(); 
var array = []; 
if (typeof value === "string") { 
    var name = session.createName(value); 
    array.push(name.getCanonical()); 
    name.recycle(); 
} else { 
    var it:java.util.Iterator = value.iterator(); 
    while(it.hasNext()) { 
     var name = session.createName(it.next()); 
     array.push(name.getCanonical()); 
     name.recycle(); 
    }    
} 
var item:NotesItem = doc.replaceItemValue("Readers", array); 
item.setReaders(true); 
+0

如果我使用一个inputField来存储例如选自3名的用户名namesPicker,我可以使用getComponent(“inputField1”)。getValue并将其赋值给var namesPickerResult? – 2014-09-24 19:15:14

+0

是的,你可以使用'getComponent(“inputField1”)。getValue()'为namesPickerValue。但是,确保名称是规范化的。 – 2014-09-24 19:50:41

+0

你的文件是什么意思?用ID阅读器添加另一个字段?我必须限制它吗? – 2014-09-25 05:26:45