【问题标题】:XPages: can i filter a view to show only entries that belong to a group?XPages:我可以过滤视图以仅显示属于某个组的条目吗?
【发布时间】:2013-11-28 07:22:03
【问题描述】:

我在 xpage 中有一个视图,其中包含一些条目(比如说客户)。我有一个 acl 人(客户)组,其中包含视图的一些客户。现在我想使用视图的搜索属性来仅显示属于该组的条目。

我已经使用搜索属性按名称选择用户,例如:

字段名称包含“Chuck Norris”

有没有类似的查询? (也许在现场使用@isMember ......?)

更新:我也会将组条目(客户名称)放入文档中的文本列表中。那么我可以根据文本列表的值过滤视图的“名称”字段吗?

【问题讨论】:

  • 您可以通过预约代理将您的文件放入文件夹。

标签: full-text-search xpages lotus-notes lotus-domino lotus


【解决方案1】:

也许使用阅读器字段是个好主意。您说的是限制对一组 Domino 用户的文档访问——这正是阅读器字段的用途。

例如,将包含客户名称的文本列表字段设置为如下所示的阅读器字段:

var item = document1.getFirstItem("myfield");
item.setReaders(true);
document1.save();

myfield 需要包含规范名称(CN=firstname lastname/O=organisation)。

使用阅读器字段,您根本不需要进行任何视图过滤,它会自动发生。如果您有很多文档(例如,一百万左右),它可能会减慢速度,否则,这是一个不错的方法。

但是,如果您想限制仅在一个特定的视图阅读器字段中显示文档,则没有解决方案。在这种情况下,您需要自己尝试进行视图过滤。

如果您只想过滤一个特定的客户,那么使用分类视图是可行的方法。然后,您可以为视图面板指定一个客户端的名称作为类别过滤器。

如果你想过滤多个客户端,你需要基于全文搜索来做,就像你已经尝试过的那样。在这种情况下,请确保您使用的是 Domino 9。以前的 Domino 版本不会将视图排序顺序应用于全文搜索结果,这意味着您必须使用自定义 javascript 左右手动搜索它,这很复杂。

或者,正如 Frantisek 建议的那样,编写一个计划代理,根据其客户将文档放入文件夹中 - 但根据您要过滤视图的客户数量,这可能会导致许多文件夹,这可能会导致其他问题.此外,您需要确保在不再需要文件夹时将其删除,并且在新文档出现在文件夹中之前会有延迟。

因此,简而言之,如果您想根据客户端名称进行应用程序范围的限制,请使用读取器字段。 如果您想一次限制一个客户名称,请使用类别。 否则,请在 Domino 9 中使用全文搜索。

【讨论】:

  • 如果您使用读者字段,请确保您将服务器、管理员和开发人员组或角色作为条目包含在列表中。我通常有一个名为 [AllAccess] 的角色,它是每个文档之一,以确保有人可以在需要时获取它。
  • 是的,这是个好建议。不过,我曾经忘记这样做,您仍然可以通过 Domino Administrator 的完全管理员访问功能访问文档 - 至少只要有人拥有此级别的访问权限。
猜你喜欢
  • 2014-04-27
  • 1970-01-01
  • 2012-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
相关资源
最近更新 更多