Query Role and privileges via Psdk

Is there a way to access the roles and privileges of an agent with the Psdk.
Thanks!

The only way I found was to retrieve all roles:

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

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

	/***
	 * 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;
	}