【问题标题】:Selection formula in View Lotus Notes查看 Lotus Notes 中的选择公式
【发布时间】:2014-10-24 08:53:27
【问题描述】:

我有一个表单 (NewDocumentForm),用于创建文档。还有一个字段(名称:reader_field)保留了可以读取此文档的ACL 的角色。

接下来,我创建一个视图 (MainView) 来显示此文档,但我遇到了视图选择公式的问题。

我的任务是在 MainView 中向具有阅读此文档的角色的用户显示文档(reader_field 中的此角色)。

所以在选择公式中我写下一个:

SELECT (@Contains(reader_field; @UserRoles));

SELECT @IsMember(reader_field; @UserRoles);

如果你理解我的问题,请给我建议。谢谢。

【问题讨论】:

  • 只有当您是 reader 字段的成员时才能查看视图中的文档
  • ...或作者类型字段。请记住,列在“作者”字段中会给您显式 编辑文档的权限(前提是您至少具有数据库的作者访问权限),并且您无法编辑您看不到的内容。字段标志集是 Authors 字段上的“SUMMARY READ WRITE ACCESS”。令人惊讶的是,似乎很少有人知道这一点(或至少了解其中的含义),所以如果你不知道,你并不孤单。

标签: lotus-notes lotus-domino lotusscript lotus lotus-formula


【解决方案1】:

您可以在视图中显示所有文档。您无需为用户选择文档,因为用户只能看到用户有权访问的那些文档。

实际上,@UserRoles 在视图 SELECT 中不起作用,因为视图是在服务器上计算的。您可以使用私有视图,但这有很多您可能不会处理的副作用。所以,别担心。用户将只能在他们的角色允许的视图中看到那些文档。

【讨论】:

  • 但是我有一个问题,所有用户都可以看到所有文档,我想从所有文档中进行选择,以显示那些在 reader_field 中输入角色且具有打开视图的用户的文档
  • 如果所有用户都看到所有文档,那么列出角色的 reader 字段可能无法作为 reader 字段。使用SELECT @Contains(reader_field; "[") 显示在字段 reader_field 中具有角色的所有文档。将视图列中的角色显示为类别。
  • 当您查看文档属性并在项目的滚动列表中选择 reader_field 条目时,您看到的字段类型是什么?如果它没有被列为“SUMAMRY READ-ACCESS NAMES”,那么你没有正确设置它,它不会像你期望的那样工作。
  • 问题是:用户可以看到所有文档吗?这就是你想要的吗?
【解决方案2】:

字段 reader_field 实际上是 Notes“读者访问”字段吗?

您可以通过检查 Notes 文档属性框中的字段来判断。您应该看到该字段:

字段标志:摘要读取访问名称

如果是这种情况,那么字段 reader_field 将自动将可以在视图中查看这些文档的人员限制为具有该字段角色的人员。

所以你的选择公式可以让每个人都可以查看,readers_field 会根据需要对其进行限制。这适用于 Web 应用程序和 Notes 客户端。

请务必添加一个“获取所有”阅读器字段,并且完全有可能意外隐藏带有阅读器字段的文档,以至于没有人可以看到它们。例如,如果您添加只有支持人员拥有的 [Admin] 角色(它可以在同一文档上的另一个类型为 Readers 的字段中),那么您可以查看所有文档以用于支持目的。

如果它只是一个名为 reader_field 的普通文本字段......

如果是 Notes 应用程序: 关于你唯一的选择是使用私有视图(这里解释的有点太多了)

如果是 Web 应用程序: 您可以按 reader_field 对视图进行分类,并使用表单将视图包含在视图嵌入元素中。对用户的角色使用“限制到类别”设置(如果他们有 >1 个角色,那么您可能需要输入一些逻辑来确定哪个是合适的)

另一种选择是使用 XPage 显示视图,它允许您在显示数据时修剪数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多