private void invalidateCachedPermission( Permission permission ) { if ( permission != null ) { permissionsCache.remove( permission.getName() ); } }
public void removePermission( Permission permission ) throws RbacObjectNotFoundException, RbacManagerException { RBACObjectAssertions.assertValid( "Remove Permission", permission ); if ( permission.isPermanent() ) { throw new RbacPermanentException( "Unable to delete permanent permission [" + permission.getName() + "]" ); } assertPermissionExists( permission.getName() ); fireRbacPermissionRemoved( permission ); permissions.remove( permission.getName() ); }
public boolean permissionExists( String name ) { try { for ( Permission permission : getAllPermissions() ) { if ( StringUtils.equals( permission.getName(), name ) ) { return true; } } } catch ( RbacManagerException e ) { return false; } return false; }
public boolean permissionExists( Permission permission ) { if ( permission == null ) { return false; } if ( permissionsCache.hasKey( permission.getName() ) ) { return true; } return this.rbacImpl.permissionExists( permission ); }
@Override public List<Permission> getAllPermissions() throws RbacManagerException { Map<String, Permission> allPermissions = new HashMap<>(); boolean allFailed = true; Exception lastException = null; for ( RBACManager rbacManager : rbacManagersPerId.values() ) { try { List<Permission> permissions = rbacManager.getAllPermissions(); for ( Permission p : permissions ) { allPermissions.put( p.getName(), p ); } allFailed = false; } catch ( Exception e ) { lastException = e; } } if ( lastException != null && allFailed ) { throw new RbacManagerException( lastException.getMessage(), lastException ); } return new ArrayList<>( allPermissions.values() ); }
@Override public List<Permission> getAllPermissions() throws RbacManagerException { Map<String, Permission> allPermissions = new HashMap<>(); boolean allFailed = true; Exception lastException = null; for ( RBACManager rbacManager : rbacManagersPerId.values() ) { try { List<? extends Permission> permissions = rbacManager.getAllPermissions(); for ( Permission p : permissions ) { allPermissions.put( p.getName(), p ); } allFailed = false; } catch ( Exception e ) { lastException = e; } } if ( lastException != null && allFailed ) { throw new RbacManagerException( lastException.getMessage(), lastException ); } return new ArrayList<>( allPermissions.values() ); }
@Override public void removePermission( Permission permission ) throws RbacObjectNotFoundException, RbacObjectInvalidException, RbacManagerException { boolean allFailed = true; Exception lastException = null; for ( RBACManager rbacManager : rbacManagersPerId.values() ) { try { rbacManager.removePermission( permission ); permissionsCache.remove( permission.getName() ); allFailed = false; } catch ( Exception e ) { lastException = e; } } if ( lastException != null && allFailed ) { throw new RbacManagerException( lastException.getMessage(), lastException ); } }
@Override public void removePermission( Permission permission ) throws RbacObjectNotFoundException, RbacObjectInvalidException, RbacManagerException { boolean allFailed = true; Exception lastException = null; for ( RBACManager rbacManager : rbacManagersPerId.values() ) { try { rbacManager.removePermission( permission ); permissionsCache.remove( permission.getName() ); allFailed = false; } catch ( Exception e ) { lastException = e; } } if ( lastException != null && allFailed ) { throw new RbacManagerException( lastException.getMessage(), lastException ); } }
@Test public void testPerformancePermissions() throws RbacManagerException { rbacDefaults.createDefaults(); String permIdRunIndexer = "Run Indexer"; String permIdAddRepo = "Add Repository"; long startTime = System.currentTimeMillis(); for ( int i = 0; i <= ITERATIONS; i++ ) { Permission permRunIndex = rbacManager.getPermission( permIdRunIndexer ); Permission permAddRepo = rbacManager.getPermission( permIdAddRepo ); assertNotNull( permRunIndex ); assertNotNull( permAddRepo ); assertEquals( permIdRunIndexer, permRunIndex.getName() ); assertEquals( permIdAddRepo, permAddRepo.getName() ); } long endTime = System.currentTimeMillis(); assertPerformance( "Permissions", startTime, endTime, ITERATIONS, 350 ); }
public static void assertValid( String scope, Permission permission ) throws RbacObjectInvalidException { if ( permission == null ) { throw new RbacObjectInvalidException( scope, "Null Permission object is invalid." ); } if ( StringUtils.isEmpty( permission.getName() ) ) { throw new RbacObjectInvalidException( scope, "Permission.name must not be empty." ); } assertValid( "Permission.operation", permission.getOperation() ); assertValid( "Permission.resource", permission.getResource() ); }
public Permission savePermission( Permission permission ) throws RbacManagerException { triggerInit(); RBACObjectAssertions.assertValid( "Save Permission", permission ); permissions.put( permission.getName(), permission ); fireRbacPermissionSaved( permission ); saveOperation( permission.getOperation() ); saveResource( permission.getResource() ); return permission; }
for ( Permission permission : role.getPermissions() ) if ( permissionMap.containsKey( permission.getName() ) ) permission = permissionMap.get( permission.getName() ); permission = manager.getPermission( permission.getName() ); permissionMap.put( permission.getName(), permission ); permissionMap.put( permission.getName(), permission );
public Permission( org.apache.archiva.redback.rbac.Permission permission ) { this.name = permission.getName(); this.description = permission.getDescription(); this.operation = permission.getOperation() == null ? null : new Operation( permission.getOperation() ); this.resource = permission.getResource() == null ? null : new Resource( permission.getResource() ); this.permanent = permission.isPermanent(); }
permission.setName( p.getName() );