protected AdminRule getAdminAuthAux(RuleFilter filter, TextFilter roleFilter) { Search searchCriteria = new Search(AdminRule.class); searchCriteria.addSortAsc("priority"); addStringCriteria(searchCriteria, "username", filter.getUser()); addStringCriteria(searchCriteria, "rolename", roleFilter); addCriteria(searchCriteria, "instance", filter.getInstance()); addStringCriteria(searchCriteria, "workspace", filter.getWorkspace()); // we only need the first match, no need to aggregate (no LIMIT rules here) searchCriteria.setMaxResults(1); List<AdminRule> found = adminRuleDAO.search(searchCriteria); found = filterByAddress(filter, found); switch(found.size()) { case 0: return null; case 1: return found.get(0); default: // should not happen throw new IllegalStateException("Too many admin auth rules"); } }
protected List<Rule> getRuleAux(RuleFilter filter, TextFilter roleFilter) { Search searchCriteria = new Search(Rule.class); searchCriteria.addSortAsc("priority"); addStringCriteria(searchCriteria, "username", filter.getUser()); addStringCriteria(searchCriteria, "rolename", roleFilter); addCriteria(searchCriteria, "instance", filter.getInstance()); addStringCriteria(searchCriteria, "service", filter.getService()); // see class' javadoc addStringCriteria(searchCriteria, "request", filter.getRequest()); // see class' javadoc addStringCriteria(searchCriteria, "workspace", filter.getWorkspace()); addStringCriteria(searchCriteria, "layer", filter.getLayer()); List<Rule> found = ruleDAO.search(searchCriteria); found = filterByAddress(filter, found); return found; }