for (String role : finalRoleFilter) { TextFilter roleFilter = new TextFilter(role); roleFilter.setIncludeDefault(true); List<Rule> found = getRuleAux(filter, roleFilter); ret.put(role, found);
@Override public Response delete(String username, boolean cascade) throws ConflictRestEx, NotFoundRestEx, InternalErrorRestEx { try { if ( cascade ) { ruleAdminService.deleteRulesByUser(username); } else { RuleFilter filter = new RuleFilter(SpecialFilterType.ANY); filter.setUser(username); filter.getUser().setIncludeDefault(false); long cnt = ruleAdminService.count(filter); if ( cnt > 0 ) { throw new ConflictRestEx("Existing rules reference the user " + username); } } GSUser user = userAdminService.get(username); // may throw NotFoundServiceEx if ( ! userAdminService.delete(user.getId())) { LOGGER.warn("ILLEGAL STATE -- User not found: " + user); // this should not happen throw new NotFoundRestEx("ILLEGAL STATE -- User not found: " + user); } return Response.status(Status.OK).entity("OK\n").build(); } catch (GeoFenceRestEx ex) { // already handled throw ex; } catch (NotFoundServiceEx ex) { LOGGER.warn("User not found: " + username); throw new NotFoundRestEx("User not found: " +username); } catch (Exception ex) { LOGGER.error(ex.getMessage(), ex); throw new InternalErrorRestEx(ex.getMessage()); } }
@Override public Response delete(String name, boolean cascade) throws ConflictRestEx, NotFoundRestEx, InternalErrorRestEx { try { if ( cascade ) { ruleAdminService.deleteRulesByRole(name); } else { RuleFilter filter = new RuleFilter(SpecialFilterType.ANY); filter.setRole(name); filter.getUser().setIncludeDefault(false); long cnt = ruleAdminService.count(filter); if ( cnt > 0 ) { throw new ConflictRestEx("Existing rules reference the role " + name); } } UserGroup role = userGroupAdminService.get(name); if ( ! userGroupAdminService.delete(role.getId())) { LOGGER.warn("Role not found: " + name); throw new NotFoundRestEx("Role not found: " + name); } return Response.status(Status.OK).entity("OK\n").build(); } catch (GeoFenceRestEx ex) { // already handled throw ex; } catch (NotFoundServiceEx ex) { LOGGER.warn("Role not found: " + name); throw new NotFoundRestEx("Role not found: " + name); } catch (Exception ex) { LOGGER.error(ex.getMessage(), ex); throw new InternalErrorRestEx(ex.getMessage()); } }
private boolean getAdminAuth(RuleFilter filter) { Set<String> finalRoleFilter = validateUserRoles(filter); if(finalRoleFilter == null) { return false; } boolean isAdmin = false; if(finalRoleFilter.isEmpty()) { AdminRule rule = getAdminAuthAux(filter, filter.getRole()); isAdmin = rule == null ? false : rule.getAccess() == AdminGrantType.ADMIN; } else { for (String role : finalRoleFilter) { TextFilter roleFilter = new TextFilter(role); roleFilter.setIncludeDefault(true); AdminRule rule = getAdminAuthAux(filter, roleFilter); // if it's admin in at least one group, the admin auth is granted if(rule != null && rule.getAccess() == AdminGrantType.ADMIN) { isAdmin = true; } } } return isAdmin; }
public RuleFilter(SpecialFilterType type, boolean includeDefault) { FilterType ft = type.getRelatedType(); user = new TextFilter(ft); user.setIncludeDefault(includeDefault); role = new TextFilter(ft); role.setIncludeDefault(includeDefault); instance = new IdNameFilter(ft, includeDefault); sourceAddress = new TextFilter(ft); sourceAddress.setIncludeDefault(includeDefault); service = new TextFilter(ft, true); service.setIncludeDefault(includeDefault); request = new TextFilter(ft, true); request.setIncludeDefault(includeDefault); workspace = new TextFilter(ft); workspace.setIncludeDefault(includeDefault); layer = new TextFilter(ft); layer.setIncludeDefault(includeDefault); }
public RuleFilter(SpecialFilterType type, boolean includeDefault) { FilterType ft = type.getRelatedType(); user = new TextFilter(ft); user.setIncludeDefault(includeDefault); role = new TextFilter(ft); role.setIncludeDefault(includeDefault); instance = new IdNameFilter(ft, includeDefault); sourceAddress = new TextFilter(ft); sourceAddress.setIncludeDefault(includeDefault); service = new TextFilter(ft, true); service.setIncludeDefault(includeDefault); request = new TextFilter(ft, true); request.setIncludeDefault(includeDefault); workspace = new TextFilter(ft); workspace.setIncludeDefault(includeDefault); layer = new TextFilter(ft); layer.setIncludeDefault(includeDefault); }
private void setFilter(TextFilter filter, String name, Boolean includeDefault) { if (name != null) { filter.setText(name); if (includeDefault != null) { filter.setIncludeDefault(includeDefault); } } else { if (includeDefault != null && includeDefault) { filter.setType(SpecialFilterType.DEFAULT); } else { filter.setType(SpecialFilterType.ANY); } } }
private void setFilter(TextFilter filter, String name, Boolean includeDefault) { if (name != null) { filter.setText(name); if (includeDefault != null) { filter.setIncludeDefault(includeDefault); } } else { if (includeDefault != null && includeDefault) { filter.setType(SpecialFilterType.DEFAULT); } else { filter.setType(SpecialFilterType.ANY); } } }
private void setFilter(TextFilter filter, String name, Boolean includeDefault) { if (name != null) { filter.setText(name); if (includeDefault != null) { filter.setIncludeDefault(includeDefault); } } else { if (includeDefault != null && includeDefault) { filter.setType(SpecialFilterType.DEFAULT); } else { filter.setType(SpecialFilterType.ANY); } } }
private void setFilter(TextFilter filter, String name, Boolean includeDefault) { if (name != null) { filter.setText(name); if (includeDefault != null) { filter.setIncludeDefault(includeDefault); } } else { if (includeDefault != null && includeDefault) { filter.setType(SpecialFilterType.DEFAULT); } else { filter.setType(SpecialFilterType.ANY); } } }