【问题标题】:How to set sitecollection administrator to user in SharePoint online using rest api如何使用 rest api 将站点集合管理员设置为 SharePoint Online 中的用户
【发布时间】:2018-05-12 05:17:11
【问题描述】:

是否可以使用 rest api 将网站集管理员设置为 SharePoint online 中的用户?

【问题讨论】:

    标签: sharepoint office365 sharepoint-online


    【解决方案1】:

    您首先需要通过EnsureUser 方法将用户添加到网站集,然后您需要通过将他的IsSiteAdmin 属性设置为用户@MarkMascolino 提到的true 来将他设置为管理员。

    在执行我们的代码之前,我们需要用户的电子邮件。此外,执行此 REST 调用的用户本人必须是管理员。

    代码如下,请尝试根据您的用户和网站集进行修改:

    function ensureUser(webUrl,loginName)
    {
       var payload = { 
            'logonName': loginName,         
        }; 
       return $.ajax({
          url: webUrl + "/_api/web/ensureuser",
          type: "POST",
          contentType: "application/json;odata=verbose",
          data: JSON.stringify(payload),
          headers: {
             "X-RequestDigest": $("#__REQUESTDIGEST").val(),
             "accept": "application/json;odata=verbose"
          }
       });  
    }
    
    function setSiteAdmin(webUrl,userId){
    
        var payload = {
            "__metadata": { "type": "SP.User" },
            "IsSiteAdmin": true
        };
    
       return $.ajax({
          url: webUrl + "/_api/web/getuserbyid("+ userId +")",
          type: "POST",
          contentType: "application/json;odata=verbose",
          data: JSON.stringify(payload),
          headers: {
             "X-RequestDigest": $("#__REQUESTDIGEST").val(),
             "accept": "application/json;odata=verbose",
             "X-HTTP-Method": "MERGE"
          }
       });  
    }
    
    
    
    
    var loginName = 'i:0#.f|membership|user.name@tenantname.onmicrosoft.com'
    ensureUser(_spPageContextInfo.siteAbsoluteUrl,loginName)
    .done(function(data)
    {
        console.log('User has been added');
        console.log(data);    
    
        setSiteAdmin(_spPageContextInfo.siteAbsoluteUrl,data.d.Id)
        .done(function(response){
            console.log(response);
            console.log("set user as admin");   
        }).fail(function(error){
            console.log(error);     
        });
    
    })
    .fail(function(error){
        console.log('An error occured while adding user');
    });
    

    确保用户代码参考 - Sharepoint 2013: EnsureUser via REST API

    【讨论】:

      【解决方案2】:

      是的,这是可能的。此页面详细介绍了用户和组的 RESTful API: https://msdn.microsoft.com/en-us/library/office/dn531432.aspx#bk_User

      特别注意如何使用 POST 对用户进行更改。此外,如果您查看可用的字段,您将看到字段 IsSiteAdmin 的类型为 Boolean,可读写,并具有以下描述:

      获取或设置一个布尔值,该值指定用户是否是网站集管理员。

      【讨论】:

      • 谢谢标记.. 我想将用户添加为网站集管理员,该用户不是网站集(根网站)中的网站用户。将 Office 365 全局管理员授予 SharePoint 网站集管理员。使用 Rest api 可以吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多