@Override public AccessInfo getAdminAuthorization(RuleFilter filter) { AccessInfo ret = new AccessInfo(GrantType.ALLOW); ret.setAdminRights(getAdminAuth(filter)); return ret; }
@Override public AccessInfo getAccessInfo(RuleFilter filter) { LOGGER.info("Requesting access for " + filter); Map<String, List<Rule>> groupedRules = getRules(filter); AccessInfoInternal currAccessInfo = null; for (Entry<String, List<Rule>> ruleGroup : groupedRules.entrySet()) { String role = ruleGroup.getKey(); List<Rule> rules = ruleGroup.getValue(); AccessInfoInternal accessInfo = resolveRuleset(rules); if(LOGGER.isDebugEnabled()) { LOGGER.debug("Filter " + filter + " on role " + role + " has access " + accessInfo); } currAccessInfo = enlargeAccessInfo(currAccessInfo, accessInfo); } AccessInfo ret; if(currAccessInfo == null) { LOGGER.warn("No access for filter " + filter); // Denying by default ret = new AccessInfo(GrantType.DENY); } else { ret = currAccessInfo.toAccessInfo(); } if(ret.getGrant() == GrantType.ALLOW) { ret.setAdminRights(getAdminAuth(filter)); } LOGGER.info("Returning " + ret + " for " + filter); return ret; }
public AccessInfo toAccessInfo() { AccessInfo ret = new AccessInfo(); ret.setGrant(grant); ret.setDefaultStyle(defaultStyle); ret.setAllowedStyles(allowedStyles == null? null : new HashSet(allowedStyles)); // new Set will prevent marshalling hibernate classes ret.setAttributes(attributes == null ? null : new HashSet<LayerAttribute>(attributes)); ret.setCqlFilterRead(cqlFilterRead); ret.setCqlFilterWrite(cqlFilterWrite); if(area != null) ret.setAreaWkt(area.toText()); ret.setCatalogMode(mapCatalogModeDTO(catalogMode)); return ret; }