I am trying to obtain user roles to pass from Sharepoint server to a specific tool, and I have to perform a lot of gets to obtain it.
There is a simples REST request to do it?
I am trying to obtain user roles to pass from Sharepoint server to a specific tool, and I have to perform a lot of gets to obtain it.
There is a simples REST request to do it?
You could consider the following solution to get permission levels/roles:
/_api/web/getusereffectivepermissions
endpointJavaScript example
function getUserEffectivePermissions(webUrl,accountName)
{
var endpointUrl = webUrl + "/_api/web/getusereffectivepermissions(@u)?@u='" + encodeURIComponent(accountName) + "'";
return $.getJSON(endpointUrl);
}
function getUserRoles(webUrl,accountName)
{
return getUserEffectivePermissions(webUrl,accountName).then(function(data){
var permissions = new SP.BasePermissions();
permissions.initPropertiesFromJson(data);
var permLevels = [];
for(var permLevelName in SP.PermissionKind.prototype) {
if (SP.PermissionKind.hasOwnProperty(permLevelName)) {
var permLevel = SP.PermissionKind.parse(permLevelName);
if(permissions.has(permLevel)){
permLevels.push(permLevelName);
}
}
}
return permLevels;
});
}
Usage
var webUrl = _spPageContextInfo.webAbsoluteUrl;
getUserRoles(webUrl,'i:0#.f|membership|[email protected]').done(function(permLevels){
console.log(permLevels);
});