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]