@Override public LayerGroupAccessLimits getAccessLimits( Authentication user, LayerGroupInfo layerGroup, List<LayerGroupInfo> containers) { if (hideLayerGroup(layerGroup)) { return new LayerGroupAccessLimits(CatalogMode.HIDE); } else { return super.getAccessLimits(user, layerGroup, containers); } }
protected DataAccessLimits intersection(DataAccessLimits a, DataAccessLimits b) { if (a == null) return b; if (b == null) return a; if (a instanceof VectorAccessLimits && b instanceof VectorAccessLimits) { return intersection((VectorAccessLimits) a, (VectorAccessLimits) b); } else if (a instanceof CoverageAccessLimits && b instanceof CoverageAccessLimits) { return intersection((CoverageAccessLimits) a, (CoverageAccessLimits) b); } else if (a instanceof WMSAccessLimits && b instanceof WMSAccessLimits) { return intersection((WMSAccessLimits) a, (WMSAccessLimits) b); } throw new IllegalArgumentException( "Tried to get intersection of differing or unanticipated types of DataAccessLimits (" + a + " && " + b + ")"); }
protected ResourceAccessManager buildManager( String propertyFile, ResourceAccessManagerWrapper wrapper) throws Exception { ResourceAccessManager manager = buildAccessManager(propertyFile); if (wrapper != null) { wrapper.setDelegate(manager); manager = wrapper; } sc = new SecureCatalogImpl(catalog, manager) { @Override protected boolean isAdmin(Authentication authentication) { return false; } }; GeoServerExtensionsHelper.singleton("secureCatalog", sc, SecureCatalogImpl.class); return manager; }
@Override public LayerGroupAccessLimits getAccessLimits(Authentication user, LayerGroupInfo layerGroup) { if (hideLayerGroup(layerGroup)) { return new LayerGroupAccessLimits(CatalogMode.HIDE); } return super.getAccessLimits(user, layerGroup); }
protected VectorAccessLimits intersection(VectorAccessLimits a, VectorAccessLimits b) { if (a == null) return b; if (b == null) return a; CatalogMode mode = intersection(a.getMode(), b.getMode()); List<PropertyName> readAttributes = intersection(a.getReadAttributes(), b.getReadAttributes()); Filter readFilter = intersection(a.getReadFilter(), b.getReadFilter()); List<PropertyName> writeAttributes = intersection(a.getReadAttributes(), b.getReadAttributes()); Filter writeFilter = intersection(a.getWriteFilter(), b.getWriteFilter()); return new VectorAccessLimits( mode, readAttributes, readFilter, writeAttributes, writeFilter); }
@Override public WorkspaceAccessLimits getAccessLimits(Authentication user, WorkspaceInfo workspace) { if (hideWorkspace(workspace)) { return new WorkspaceAccessLimits(CatalogMode.HIDE, false, false, false); } else { return super.getAccessLimits(user, workspace); } }
if (b == null) return a; final CatalogMode mode = intersection(a.getMode(), b.getMode()); final MultiPolygon rasterFilter; readFilter = Filter.EXCLUDE; } else { readFilter = intersection(a.getReadFilter(), b.getReadFilter()); GeneralParameterValue[] params = intersection(a.getParams(), b.getParams());
@Override public DataAccessLimits getAccessLimits(Authentication user, ResourceInfo resource) { if (hideResource(resource)) { return hide(resource); } else { return super.getAccessLimits(user, resource); } }
protected WMSAccessLimits intersection(WMSAccessLimits a, WMSAccessLimits b) { if (a == null) return b; if (b == null) return a; CatalogMode mode = intersection(a.getMode(), b.getMode()); Filter readFilter = intersection(a.getReadFilter(), b.getReadFilter()); MultiPolygon rasterFilter = null; { MultiPolygon aFilter = a.getRasterFilter(), bFilter = b.getRasterFilter(); if (aFilter == null) rasterFilter = bFilter; else if (bFilter == null) rasterFilter = aFilter; else rasterFilter = (MultiPolygon) aFilter.intersection(bFilter); } boolean allowFeatureInfo = a.isAllowFeatureInfo() && b.isAllowFeatureInfo(); return new WMSAccessLimits(mode, readFilter, rasterFilter, allowFeatureInfo); }
@Override public StyleAccessLimits getAccessLimits(Authentication user, StyleInfo style) { if (hideStyle(style)) { return new StyleAccessLimits(CatalogMode.HIDE); } else { return super.getAccessLimits(user, style); } }
protected WorkspaceAccessLimits intersection(WorkspaceAccessLimits a, WorkspaceAccessLimits b) { CatalogMode mode = intersection(a.getMode(), b.getMode()); return new WorkspaceAccessLimits( mode, a.isReadable() && b.isReadable(), a.isWritable() && b.isWritable(), a.isAdminable() && b.isAdminable()); }
@Override public DataAccessLimits getAccessLimits( Authentication user, LayerInfo layer, List<LayerGroupInfo> containers) { if (hideLayer(layer) || hideResource(layer.getResource())) { return hide(layer.getResource()); } return super.getAccessLimits(user, layer, containers); }
@Override public DataAccessLimits getAccessLimits(Authentication user, LayerInfo layer) { if (hideLayer(layer) || hideResource(layer.getResource())) { return hide(layer.getResource()); } return super.getAccessLimits(user, layer); }