我有一个SharePoint在线列表,在该站点上组织中的每个人都有读取权限。 该列表包含3列:“标题”,“链接”,“网站”,并且是来自不同SharePoint网站,具有不同成员的页面的目录表。该列表由Flows填充,该Flows在页面发布时触发,页面名称遵循模式。
例如:
第1条|链接到第1条|财务
第2条|链接到文章2 |管理
我想过滤此列表,以便每个用户仅看到指向其所属站点的链接。
查看上面的示例,如果当前用户是财务团队的成员,但不是行政部门的成员,则他应该只看到第1条。
是否可以通过SharePoint视图筛选或视图格式化json来做到这一点?
谢谢!
答案 0 :(得分:1)
您可以在列表中添加第四列(组),其类型为“用户/组”,并在其中填充一个或多个应查看的组。之后,您可以使用CAML 成员身份元素进行过滤。
基本上,您的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。