{
RoleAndPrivilegeListResourceResponse result = new RoleAndPrivilegeListResourceResponse();
List<RoleAndPrivilegeListResource> resources = new ArrayList<RoleAndPrivilegeListResource>();
RoleAndPrivilegeListFilterResourceRequest filterRequest = (RoleAndPrivilegeListFilterResourceRequest) payload;
try {
Form form = request.getResourceRef().getQueryAsForm();
FilterRequest filter = new FilterRequest(filterRequest);
for (Role role : getSecuritySystem().getAuthorizationManager(DEFAULT_SOURCE).listRoles()) {
RoleAndPrivilegeListResource res = toDTO(role);
if (filter.applies(res)) {
resources.add(res);
}
}
for (Privilege privilege : getSecuritySystem().getAuthorizationManager(DEFAULT_SOURCE).listPrivileges()) {
RoleAndPrivilegeListResource res = toDTO(privilege);
if (filter.applies(res)) {
resources.add(res);
}
}
if (!StringUtils.isEmpty(filterRequest.getData().getUserId())) {
try {
User user = getSecuritySystem().getUser(filterRequest.getData().getUserId());
List<PlexusRoleResource> plexusRoles = securityToRestModel(user).getRoles();
for (PlexusRoleResource plexusRole : plexusRoles) {
if (!DEFAULT_SOURCE.equals(plexusRole.getSource())) {