Genesys CTI User Forum

Genesys CTI User Forum => Genesys CTI Technical Discussion => Topic started by: reji2020 on April 15, 2021, 08:29:12 PM

Title: Query Role and privileges via Psdk
Post by: reji2020 on April 15, 2021, 08:29:12 PM
Is there a way to access the roles and privileges of an agent with the Psdk.
Thanks!
Title: Re: Query Role and privileges via Psdk
Post by: PeteHoyle on April 19, 2021, 07:44:03 AM
The only way I found was to retrieve all roles:

[code]CfgRoleQuery query = new CfgRoleQuery();
Collection<CfgRole> roles = confService.retrieveMultipleObjects(CfgRole.class, query);
[/code]

And then iterate through the roles and check if the agent is assigned:

[code] /***
* Is the PersonDBID assigned to the Role Can be either directly assigned or
* assigned to an AccessGroup
*
* @param role
* @param personDBID
* @return
*/
private boolean isAgentAMember(String l, CfgRole role, int personDBID) {
log.debug(l + "Check if Person: " + personDBID + " Is assigned to Role: " + role.getName());
if (role.getMembers() != null) {

for (CfgRoleMember member : role.getMembers()) {
if (member.getObjectType() == CfgObjectType.CFGPerson) {
if (member.getObjectDBID() == personDBID) {
log.debug(l + "Person: " + personDBID + " Is assigned to Role: " + role.getName());
return true;
}
} else if (member.getObjectType() == CfgObjectType.CFGAccessGroup) {
log.debug(l + "Check if Person: " + personDBID + " Is assigned to Role: " + role.getName() + " Using Access Group: " + member.getObjectDBID());
if (getAccessGroup(l, member.getObjectDBID(), personDBID)) {
log.debug(l + "Person: " + personDBID + " Is assigned to Role: " + role.getName());
return true;
}
}
}
}
return false;
}[/code]