" /> Query Role and privileges via Psdk - Genesys CTI User Forum

Author Topic: Query Role and privileges via Psdk  (Read 1168 times)

Offline reji2020

  • Newbie
  • *
  • Posts: 1
  • Karma: 0
Query Role and privileges via Psdk
« on: April 15, 2021, 08:29:12 PM »
Advertisement
Is there a way to access the roles and privileges of an agent with the Psdk.
Thanks!

Offline PeteHoyle

  • Full Member
  • ***
  • Posts: 126
  • Karma: 13
Re: Query Role and privileges via Psdk
« Reply #1 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]