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



我有一个SharePoint在线列表,在一个网站上,组织中的每个人都有读取访问权限。 该列表有 3 列:"标题"、"链接"、"网站",是来自不同 SharePoint 网站且具有不同成员的页面的目录。该列表由 Flows 填充,该流在发布页面时触发,并且其名称遵循模式。

例如:

第一条 |链接到文章1 |财力

第二条 |链接到文章2 |管理

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

查看上面的示例,如果当前用户是财务团队的成员,但不是管理部门的成员,则他应该只看到第 1 条。

是否可以通过 SharePoint 视图筛选或视图格式设置 json 来执行此操作?

谢谢!

您可以将类型为"用户/组"的第四列(组(添加到列表中,并用一个或多个组填充它,这些组应该查看它。之后,您可以使用 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。

我找到了这个问题的实际解决方案。

使用 CAML 查询不是解决方案,因为我们想要一个正确的视图。使用 CAML,我们只能在电源外壳中获取数据,这是没有用的。

请按照以下步骤实现目标:

1:创建一个类型为"个人或组"的新列,其名称为"组列">

2:创建一个名称为"自定义用户组"的新用户组

3:在列表中创建项目时,运行 Power Automate 流,该流将遍历用户组"自定义用户组"中的所有用户,并使用每个电子邮件地址填充该"组列"。

4:转到列表设置并向下滚动以打开默认列表视图。应用[ME]过滤器,并为该过滤器选择"组列"。

大功告成。现在,只要该用户组中的任何人将打开列表。他将看到所有项目。

同样,您可以在列表中创建不同的用户组和不同的列,并应用 [ME] 过滤器。

相关内容

  • 没有找到相关文章

最新更新