通过SharePoint中的javascript/SP services,基于用户组成员身份在列表视图中隐藏项目行(整行)
如何基于用户的组成员身份(或列值)隐藏完整的项目行。我有以下列表视图: 我想根据部门组中的用户成员身份(SharePoint组包含不同部门、法律部门、Project Mngmt等的用户)隐藏完整的项目行。这样,每个部门的员工只能查看他们的条目。我不想使用列表视图Web部件上的目标受众 我用这段代码来隐藏表单中的字段,但如何使用它来隐藏列表视图中的整个项目行呢通过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
$(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链接,根据特定列的值显示/隐藏行,并使用自定义代码获取当前用户的组。