按 "current user member of group" 筛选 SharePoint 列表

Filter SharePoint list by "current user member of group"

我有一个 SharePoint 在线列表,在一个站点上,组织中的每个人都具有读取权限。 该列表有 3 列:标题、Link、站点,并且是来自不同 SharePoint 站点的页面的 table 内容,具有不同的成员。该列表由在发布页面时触发的流程填充,并且其名称遵循某种模式。

例如:

第1条 | Link-to-第1条|财务

第2条 | Link-to-第2条|管理

我想过滤此列表,以便每个用户只能看到他所属网站的链接。

查看上面的示例,如果当前用户是财务团队的成员而不是管理团队的成员,他应该只能看到文章 1。

是否可以通过 SharePoint 视图筛选或视图格式化来实现此目的json?

谢谢!

您可以将类型为 User/Group 的第四列(组)添加到列表中,并用一个或多个组填充它,这样应该可以查看它。之后,您可以使用 CAML Membership 元素进行过滤。

基本上,您的 SPView.Query 应该类似于(如果 ShowForGroups 是包含组的列的内部名称):

<Where>
   <Or>
      <Eq>
         <FieldRef Name="ShowForGroups" />
         <Value Type="Integer">
            <UserID />
         </Value>
      </Eq>
      <Membership Type="CurrentUserGroups">
         <FieldRef Name="ShowForGroups" />
      </Membership>
   </Or>
</Where>

但是,您将无法使用 SharePoint 视图创建页面创建此类视图,为此您需要使用 powershell。