我有一个表单( NewDocumentForm
),我在其中创建文档 . 并且还有一个字段(名称: reader_field
),它保留了 ACL
的角色,可以读取此文档 .
接下来我创建一个视图( MainView
)来显示这些文档,我遇到了View Selection公式的问题 .
我的任务是在MainView中向用户显示他有角色阅读此文档的文档(此角色在 reader_field
中) .
所以在选择公式我写下一个:
SELECT (@Contains(reader_field; @UserRoles));
< - 我不需要......
SELECT @IsMember(reader_field; @UserRoles);
< - 我不需要......
如果您理解我的问题,请给我建议 . 谢谢 .
2 回答
您可以在视图中显示所有文档 . 您无需为用户选择文档,因为用户只能查看用户有权访问的文档 .
实际上,@UserRoles将无法在视图SELECT中工作,因为视图是在服务器上计算的 . 您可以使用私人视图,但这有很多副作用,您可能无法处理 . 所以,别担心 . 用户只能看到他们的角色允许访问的那些文档 .
字段reader_field实际上是Notes“读者访问”字段吗?
您可以通过选中Notes文档属性框中的字段来判断 . 您应该看到该字段:
Field Flags:Summary READ-ACCESS NAMES
如果是这种情况,那么字段reader_field将自动限制谁可以在视图中看到那些具有该字段中角色的文档 .
因此,您的选择公式可以允许每个人查看它,reader_field将根据需要限制它 . 这适用于Web应用程序和Notes客户端 .
一定要添加一个'catch all'读者字段,并且完全有可能意外地隐藏带有Readers字段的doecuments,以便没有人可以看到它们 . 如果您添加例如[Admin]角色(它可以在同一文档上的Readers类型的另一个字段中),只支持人员,那么您可以查看所有文档,以获得支持 .
如果它只是一个名为reader_field的普通文本字段....
如果一个Notes应用程序:关于你唯一的选择是使用私有视图(这里有太多的解释)
如果是Web应用程序:您可以通过reader_field对视图进行分类,并使用表单来包含具有视图嵌入元素的视图 . 使用“限制到类别”设置为用户的角色(如果他们有> 1个角色,那么你可能需要输入一些逻辑来确定哪一个是合适的)
另一种方法是使用XPage显示视图,它允许您在显示时修剪数据 .