private boolean hideWorkspace(WorkspaceInfo workspace) { for (CatalogFilter filter : getCatalogFilters()) { if (filter.hideWorkspace(workspace)) { return true; } } return false; }
@Override public DataAccessLimits getAccessLimits(Authentication user, LayerInfo layer) { if (hideLayer(layer) || hideResource(layer.getResource())) { return hide(layer.getResource()); } return super.getAccessLimits(user, layer); }
@Override public DataAccessLimits getAccessLimits(Authentication user, ResourceInfo resource) { if (hideResource(resource)) { return hide(resource); } else { return super.getAccessLimits(user, resource); } }
CatalogFilterAccessManager setupAccessManager() throws Exception { ResourceAccessManager defAsResourceManager = buildAccessManager("wideOpen.properties"); CatalogFilterAccessManager mgr = new CatalogFilterAccessManager(); mgr.setCatalogFilters(Collections.singletonList(new LocalWorkspaceCatalogFilter(catalog))); mgr.setDelegate(defAsResourceManager); return mgr; }
static ResourceAccessManager lookupResourceAccessManager() throws Exception { ResourceAccessManager manager = GeoServerExtensions.bean(ResourceAccessManager.class); if (manager == null) { DataAccessManager daManager = lookupDataAccessManager(); if (daManager == null) { manager = buildDefaultResourceAccessManager(); } else { manager = new DataAccessManagerAdapter(daManager); } } CatalogFilterAccessManager lwManager = new CatalogFilterAccessManager(); lwManager.setDelegate(manager); return lwManager; }
public void testCatalogFilteredGetLayers() throws Exception { CatalogFilterAccessManager filter = new CatalogFilterAccessManager(); filter.setCatalogFilters( Collections.singletonList( new AbstractCatalogFilter() {
@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); } }
@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); } }
@Override public StyleAccessLimits getAccessLimits(Authentication user, StyleInfo style) { if (hideStyle(style)) { return new StyleAccessLimits(CatalogMode.HIDE); } else { return super.getAccessLimits(user, style); } }
@Override public LayerGroupAccessLimits getAccessLimits(Authentication user, LayerGroupInfo layerGroup) { if (hideLayerGroup(layerGroup)) { return new LayerGroupAccessLimits(CatalogMode.HIDE); } return super.getAccessLimits(user, layerGroup); }
@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); }
private boolean hideLayerGroup(LayerGroupInfo layerGroup) { for (CatalogFilter filter : getCatalogFilters()) { if (filter.hideLayerGroup(layerGroup)) { return true; } } return false; }
private boolean hideLayer(LayerInfo layer) { for (CatalogFilter filter : getCatalogFilters()) { if (filter.hideLayer(layer)) { return true; } } return false; }
private boolean hideStyle(StyleInfo style) { for (CatalogFilter filter : getCatalogFilters()) { if (filter.hideStyle(style)) { return true; } } return false; }
private boolean hideResource(ResourceInfo resource) { for (CatalogFilter filter : getCatalogFilters()) { if (filter.hideResource(resource)) { return true; } } return false; }
@Override public Filter getSecurityFilter(Authentication user, Class<? extends CatalogInfo> clazz) { // If there are no CatalogFilters, just get the delegate's filter if (filters == null || filters.isEmpty()) return delegate.getSecurityFilter(user, clazz); // Result is the conjunction of delegate's filter, and those of all the CatalogFilters ArrayList<Filter> convertedFilters = new ArrayList<Filter>(this.filters.size() + 1); convertedFilters.add(delegate.getSecurityFilter(user, clazz)); // Delegate's filter for (CatalogFilter filter : getCatalogFilters()) { convertedFilters.add(filter.getSecurityFilter(clazz)); // Each CatalogFilter's filter } return Predicates.and(convertedFilters.toArray(new Filter[convertedFilters.size()])); } }