通过SharePoint中的javascript/SP services,基于用户组成员身份在列表视图中隐藏项目行(整行)

通过SharePoint中的javascript/SP services,基于用户组成员身份在列表视图中隐藏项目行(整行),javascript,listview,sharepoint,sharepoint-online,sharepoint-designer,Javascript,Listview,Sharepoint,Sharepoint Online,Sharepoint Designer,如何基于用户的组成员身份(或列值)隐藏完整的项目行。我有以下列表视图: 我想根据部门组中的用户成员身份(SharePoint组包含不同部门、法律部门、Project Mngmt等的用户)隐藏完整的项目行。这样,每个部门的员工只能查看他们的条目。我不想使用列表视图Web部件上的目标受众 我用这段代码来隐藏表单中的字段,但如何使用它来隐藏列表视图中的整个项目行呢 $(document).ready(function() { $().SPServices({ operation: "Ge

如何基于用户的组成员身份(或列值)隐藏完整的项目行。我有以下列表视图:

我想根据部门组中的用户成员身份(SharePoint组包含不同部门、法律部门、Project Mngmt等的用户)隐藏完整的项目行。这样,每个部门的员工只能查看他们的条目。我不想使用列表视图Web部件上的目标受众

我用这段代码来隐藏表单中的字段,但如何使用它来隐藏列表视图中的整个项目行呢

$(document).ready(function() {
  $().SPServices({
    operation: "GetGroupCollectionFromUser",
    userLoginName: $().SPServices.SPGetCurrentUser(),
    async: false,
       completefunc: function (xData, Status) {
       var flag = ($(xData.responseXML).find("Group[Name='LegalDepartment']").length == 1);
       if (!flag)
        {
            //To Hide Column Header
            $("nobr:contains('User ID')").closest('tr').hide();
        }
       }
    })
})

如何通过SP services/javascript实现这一点?

到目前为止,我了解您的需求,可以有两种方法: 第一种方法是设置项目级权限。这可以通过使用RESTAPI和JSOM来实现。请查收

第二种方法是获取当前用户组成员资格,以获取用户所属的组(请检查JSOM代码)。获取组后,可以将这些组与所需列相匹配,例如,
部门
或分配给的
,并且可以相应地操作列表视图DOM以显示/隐藏每一行

我更喜欢第一种方法,因为它严格遵循SharePoint安全原则来删除用户对特定项目的权限。第二,这种方法感觉不安全,因为如果用户使用浏览器工具或其他任何工具显示分配给其他部门(他不是该部门的成员)的行,他仍然可以编辑该行,这取决于他对整个列表/库的权限。 您可能需要创建SharePoint工作流,以便根据项目创建事件上所需的列设置项目级权限。请查看详细信息。 希望这有帮助


您可以使用项目级权限隐藏rows@MuhammadObaidullahAther我不想使用项目级权限。。我只需要基于单列值“隐藏”整行。我该怎么做,从哪里获取相对
引用它,以便我可以将其隐藏在javascript代码中。您可以使用JS链接,根据特定列的值显示/隐藏行,并使用自定义代码获取当前用户的组。