端点 Uri:/_api/web/siteUsers/getByLoginName(@u)?@u='userloginName'
方法:POST
正文:{ '__metadata':{ 'type': 'SP.User' }, 'IsSiteAdmin':'true' }
标题:
JavaScript 示例
function updateUser(loginName, properties)
{
var endpointUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/siteUsers/getByLoginName(@u)?@u='" + encodeURIComponent(loginName) + "'";
var userPayload = { '__metadata': { 'type': 'SP.User' }};
for(var p in properties)
userPayload[p] = properties[p];
var headers = {};
headers["X-HTTP-Method"] = "MERGE";
return executeRequest(endpointUrl,'POST',headers,userPayload);
}
在哪里
function executeRequest(url,method,headers,payload)
{
if (typeof headers == 'undefined'){
headers = {};
}
headers["Accept"] = "application/json;odata=verbose";
if(method == "POST" || method == "PUT") {
headers["X-RequestDigest"] = $("#__REQUESTDIGEST").val();
}
var ajaxOptions =
{
url: url,
type: method,
contentType: "application/json;odata=verbose",
headers: headers
};
if(method == "POST" || method == "PUT") {
ajaxOptions.data = JSON.stringify(payload);
}
return $.ajax(ajaxOptions);
}
用法
var loginName = 'i:0#.f|membership|username@tenant.onmicrosoft.com';
var properties = {'IsSiteAdmin': true};
updateUser(loginName,properties)
.done(function(value){
console.log('User has been assigned as site collection admin');
})
.fail(function(error){
console.log(JSON.stringify(error));
});
参考
Users, groups, and roles REST API reference