Returns a list of roles assigned to the specified user profile
{ getAllRolesByProfileId }
Returns a list of roles that have been assigned to the specified user profile.
Method
/API2/access/getAllRolesByProfileId
Input Parameters
Name
profileId
Type
string
Description
The system profile's ID
Output Response
Successful Result Code
200
Response List Type
Description of Response Type
Returns a list of roles assigned to the specified profile Note that the response is returned as a list of items of this object type.
Examples
Running Queries and Slicers programmatically (JavaScript):
This example demonstrates how to run queries and slicers (parameters) programmatically to extract results.
The example uses API authentication driven from JavaScript. See Authentication APIs for alternatives.
// URL of the Pyramid installation and the path to the API 2.0 REST methods
var pyramidURL = "http://mysite.com/api2/";
// step 1: authenticate admin account and get token
// NOTE: callApi method is a generic REST method shown below.
let token = callApi("auth/authenticateUser",{
"data":{
"userName":"adminUser",
"password":"abc123!"
}
},false);
//step 2: get default tenant
let defaultTenantResult = callApi("access/getDefaultTenant",{
"auth": token
});
let tenantId = defaultTenantResult.data;
//step 3: retrieve all profiles for a specific tenant
let getAllProfilesByTenantId= callApi("access/getAllProfilesByTenantId ",{
"tenantId": tenantId,
"auth": token
});
//step 4A: add a new profile called "Consumers" using the numeric approach
// build the numeric value by summing the bit switches for each item needed.
// assume we want to have advanced (9) and discovery (3) choices on
let bitNum = (2^3) + (2^9)
let saveProfile= callApi("access/addProfile",{
"profileApiData": {
"name":"Consumers",
"description":"Basic tools for consumer user types",
"permissions":{"numeric":bitNum},
"tenantId":tenantId
},
"auth": token
});
let profileId = saveProfile.data.modifiedList[0].id
//step 4B: add a new profile called "Consumers" using the array approach
// assume we want to have advanced (9) and discovery (3) choices on
let saveProfile2= callApi("access/addProfile",{
"profileApiData": {
"name":"Consumers",
"description":"Basic tools for consumer user types",
"permissions":{"permissionBitIndexList":[9,3]},
"tenantId":tenantId
},
"auth": token
});
let profileId = saveProfile2.data.modifiedList[0].id
//step 5: creating roles
let createRole=callApi("access/createRoles",{
"data": [{
"roleName": "prole1",
"tenantId": tenantId,
"isGroupRole": false
},{
"roleName": "prole2",
"tenantId": tenantId,
"isGroupRole": false
}],
"auth": token
});
let role1 = createRole.data.modifiedList[0].id;
let role2 = createRole.data.modifiedList[1].id;
log("created roles "+role1+","+role2);
//step 6: bind new profile to role1
let updateRolesByProfileId=callApi("access/updateRolesByProfileId",{
"profileRolesData": {
"profileId":profileId,
"rolesToAdd":[role1],
"rolesToRemove":[]
},
"auth": token
});
//step 7: retrieve all roles with a given profile
let allProfileRoles= callApi("access/getAllRolesByProfileId",{
"profileId": profileId,
"auth": token
});
//step 8: delete the profile
let deleteProfile= callApi("access/deleteProfile",{
"profileId": profileId,
"auth": token
});
// ##### optional generic logging method for debugging ##############
function log(msg){
document.write(msg);
console.log(msg);
}
// ##### generic REST API calling method ##############
function callApi(path,data,parseResult=true){
var xhttp = new XMLHttpRequest();
xhttp.open("POST", pyramidURL+path, false);
xhttp.send(JSON.stringify(data));
if(parseResult){
return JSON.parse(xhttp.responseText);
}else{
return xhttp.responseText;
}
}