使用SharePoint 2010 JSOM将组添加到列表

时间:2014-02-26 00:45:14

标签: sharepoint

有人可以给我一个使用javascript客户端对象模型将SharePoint组添加到列表的示例。我能够创建组并将它们添加到网站,但我还没有看到任何关于将组添加到列表的文档?我知道如何通过c#而不是javascript来做到这一点。

2 个答案:

答案 0 :(得分:2)

如何通过SharePoint 2013中的CSOM(JavaScript)为列表中的组授予权限

以下示例演示了如何在列表中为组Contribute授予Approvers权限:

   var context = SP.ClientContext.get_current();
   var web = context.get_web(); 

   var list = web.get_lists().getByTitle(listTitle);
   var group = web.get_siteGroups().getByName("Approvers");

   var roleDef = web.get_roleDefinitions().getByType(SP.RoleType.contributor);
   var roleDefBindings = SP.RoleDefinitionBindingCollection.newObject(context);
   roleDefBindings.add(roleDef);
   list.get_roleAssignments().add(group,roleDefBindings);
   list.update();

   context.load(group);
   context.load(list);
   context.load(roleDef);
   context.executeQueryAsync(
     function () {

         console.log('For group ' + group.get_title() + ' has been granted ' + roleDef.get_name() + ' permissons in List ' + list.get_title());  
     },
     function (sender, args) {
        console.log("Error: " + args.get_message());
     }
   );

由于SP.GroupCollection在SharePoint 2010中不包含方法getByName,因此请使用方法SP.GroupCollection.getById(id)来返回组客户端对象:

var group = web.get_siteGroups().getById(16); //get Approvers group by Id

答案 1 :(得分:0)

function getGroupByName(groupName, completeFunction) {

        if (groupName == null) {
            throw new Error("Group Name cannot be null");
        }

        var rv = null;
        var currentContext = SP.ClientContext.get_current();
        var currentWeb = currentWeb = currentContext.get_web();
        var allGroups = currentWeb.get_siteGroups();

        currentContext.load(allGroups);

        currentContext.executeQueryAsync(getGroupByName_Success, getGroupByName_Failed);

        function getGroupByName_Success() {


            var groupEnumerator = allGroups.getEnumerator();

            while (groupEnumerator.moveNext()) {

                rv = groupEnumerator.get_current();

                var groupTitle = rv.get_title();

                if (groupTitle == groupName) {
                    groupFound = true;
                    break;
                }
            }

            if (groupFound == false) {
                rv = null;
            }

            completeFunction(rv);
        }

        function getGroupByName_Failed(sender, args) {
            alert("Error Occurred: " + args.get_message() + "\n" + args.get_stackTrace());
        }

    }