我有一个SharePoint在线列表,在网站上组织中的每个人都有读取权限。该列表包含3列:“标题”,“链接”,“网站”,并且是来自不同SharePoint网站,具有不同成员的页面的目录表。该列表由Flows填充,该Flows在页面发布时触发,并且页面名称遵循模式。
例如:
第1条|链接到第1条|财务
第2条|链接到第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。