gpt4 book ai didi

javascript - SharePoint 列表项 : Copy list-item-level permissions from one item to another

转载 作者:行者123 更新时间:2023-12-03 06:06:09 27 4
gpt4 key购买 nike

我遇到了以下情况,我不确定如何解决。

我需要能够将列表项级别权限从一个列表项复制到单独列表中的另一个列表项。换句话说:

列表 A 包含名为 itemA 的项目。列表 B 包含名为 itemB 的项目。我想将 itemA 的项目级权限复制到 itemB 中。

有人知道如何做到这一点吗?这可以通过使用 JSOM 的前端代码或工作流程(2010 或 2013)来实现。

我已经尝试过的事情:

最佳答案

以下示例演示如何通过 SharePoint JSOM API 复制列表项权限:

Prerequisites:

Unique permissions should be assigned for source and target list items

SP.SOD.executeFunc('SP.js', 'SP.ClientContext',
function(){
var ctx = SP.ClientContext.get_current();
var sourceListItem = ctx.get_web().get_lists().getByTitle("InTasks").getItemById(1);
var targetListItem = ctx.get_web().get_lists().getByTitle("OutTasks").getItemById(1);
copyListItemPermissions(sourceListItem,targetListItem,
function(){
console.log("Done");
},
function(sender,args){
console.log(args.get_message());
}
);
});

哪里

function copyListItemPermissions(sourceListItem,targetListItem,success,error)
{
var ctx = targetListItem.get_context();
var sourceItemPermissions = sourceListItem.get_roleAssignments();
var targetItemPermissions = targetListItem.get_roleAssignments();
ctx.load(sourceItemPermissions,'Include(Member)');
ctx.load(targetItemPermissions,'Include(Member)');
ctx.executeQueryAsync(
function(){

targetItemPermissions.get_data().forEach(function(targetAssignment){
targetAssignment.deleteObject();
});

sourceItemPermissions.get_data().forEach(function(sourceAssignment){
var principal = sourceAssignment.get_member();
if(principal.get_principalType() == 1)
targetItemPermissions.add(principal,sourceAssignment.get_roleDefinitionBindings());
else if (principal.get_principalType() == 8){
var group = ctx.get_web().get_siteGroups().getById(principal.get_id());
targetItemPermissions.add(group,sourceAssignment.get_roleDefinitionBindings());
}
});
targetListItem.update();
ctx.executeQueryAsync(
function(){
success();
},
error
);
},
error
);
}

关于javascript - SharePoint 列表项 : Copy list-item-level permissions from one item to another,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39540040/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com