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