public List<Role> getAllRoles() throws RbacManagerException { log.debug( "NOT CACHED - .getAllRoles()" ); return this.rbacImpl.getAllRoles(); }
protected List<String> getRealRoles() throws RbacManagerException { List<Role> roles = this.rbacImpl.getAllRoles(); List<String> roleNames = new ArrayList<String>( roles.size() ); for ( Role role : roles ) { roleNames.add( role.getName() ); } return roleNames; }
@Override public List<Role> getAllRoles() throws RbacManagerException { Map<String, Role> allRoles = new HashMap<>(); boolean allFailed = true; Exception lastException = null; for ( RBACManager rbacManager : rbacManagersPerId.values() ) { try { List<? extends Role> roles = rbacManager.getAllRoles(); for ( Role role : roles ) { allRoles.put( role.getName(), role ); } allFailed = false; } catch ( Exception e ) { lastException = e; } } if ( lastException != null && allFailed ) { throw new RbacManagerException( lastException.getMessage(), lastException ); } return new ArrayList<>( allRoles.values() ); }
public List<Role> getAllRoles() throws RedbackServiceException { try { List<org.apache.archiva.redback.rbac.Role> roles = rbacManager.getAllRoles(); if ( roles == null ) { return Collections.emptyList(); } roles = filterRolesForCurrentUserAccess( roles ); List<Role> res = new ArrayList<Role>( roles.size() ); for ( org.apache.archiva.redback.rbac.Role r : roles ) { res.add( new Role( r ) ); } return res; } catch ( RbacManagerException e ) { throw new RedbackServiceException( e.getMessage() ); } }
public List<Role> getDetailedAllRoles() throws RedbackServiceException { try { List<org.apache.archiva.redback.rbac.Role> roles = rbacManager.getAllRoles(); if ( roles == null ) { return Collections.emptyList(); } roles = filterRolesForCurrentUserAccess( roles ); List<Role> res = new ArrayList<Role>( roles.size() ); for ( org.apache.archiva.redback.rbac.Role r : roles ) { res.add( getRole( r.getName() ) ); } return res; } catch ( RbacManagerException e ) { throw new RedbackServiceException( e.getMessage() ); } }
@Test public void testLargeApplicationInit() throws RbacManagerException { assertNotNull( rbacManager ); rbacManager.eraseDatabase(); rbacDefaults.createDefaults(); assertEquals( 6, rbacManager.getAllPermissions().size() ); assertEquals( 11, rbacManager.getAllOperations().size() ); assertEquals( 4, rbacManager.getAllRoles().size() ); }
@Test public void testStoreInitialization() throws Exception { assertNotNull( rbacManager ); Role role = getAdminRole(); assertNotNull( role ); Role added = rbacManager.saveRole( role ); assertEquals( 1, rbacManager.getAllRoles().size() ); assertNotNull( added ); rbacManager.removeRole( added ); assertEquals( 0, rbacManager.getAllRoles().size() ); /* Assert some event tracker stuff */ assertEventTracker( 1, 1, 1, 0, false, false ); //assertTrue( eventTracker.lastDbFreshness.booleanValue() ); }
@Test public void testUserAssignmentAddRole() throws RbacManagerException { RBACManager manager = rbacManager; rbacManager.eraseDatabase(); eventTracker.rbacInit( true ); Role adminRole = manager.saveRole( getAdminRole() ); assertEquals( 1, manager.getAllRoles().size() ); String adminPrincipal = "admin"; UserAssignment assignment = manager.createUserAssignment( adminPrincipal ); assignment.addRoleName( adminRole ); manager.saveUserAssignment( assignment ); assertEquals( 1, manager.getAllUserAssignments().size() ); assertEquals( 1, manager.getAllRoles().size() ); UserAssignment ua = manager.getUserAssignment( adminPrincipal ); assertNotNull( ua ); Role fetched = manager.getRole( "ADMIN" ); assertNotNull( fetched ); /* Assert some event tracker stuff */ assertEventTracker( 1, 0, 1, 0, true, true ); }
@Test public void testAllowRoleWithoutPermissions() throws RbacManagerException { assertNotNull( rbacManager ); rbacManager.eraseDatabase(); eventTracker.rbacInit( true ); String rolename = "Test Role"; Role testRole = rbacManager.createRole( rolename ); testRole = rbacManager.saveRole( testRole ); assertNotNull( testRole ); assertEquals( 1, rbacManager.getAllRoles().size() ); assertEquals( 0, rbacManager.getAllPermissions().size() ); Role actualRole = rbacManager.getRole( rolename ); assertEquals( testRole.getName(), actualRole.getName() ); assertEquals( testRole.getChildRoleNames(), actualRole.getChildRoleNames() ); assertEquals( 1, rbacManager.getAllRoles().size() ); assertEquals( 0, rbacManager.getAllPermissions().size() ); /* Assert some event tracker stuff */ assertEventTracker( 1, 0, 0, 0, true, true ); }
@Test public void testGetAssignedPermissionsNoChildRoles() throws RbacManagerException { RBACManager manager = rbacManager; rbacManager.eraseDatabase(); eventTracker.rbacInit( true ); Role admin = getAdminRole(); admin = manager.saveRole( admin ); assertEquals( 1, manager.getAllRoles().size() ); String adminPrincipal = "admin"; UserAssignment ua = manager.createUserAssignment( adminPrincipal ); ua.addRoleName( admin ); manager.saveUserAssignment( ua ); assertEquals( 1, manager.getAllUserAssignments().size() ); Set<Permission> assignedPermissions = manager.getAssignedPermissions( adminPrincipal ); assertThat( assignedPermissions ).isNotNull().isNotEmpty().hasSize( 1 ); /* Assert some event tracker stuff */ assertEventTracker( 1, 0, 1, 0, true, true ); }
@Test public void testAddGetChildRole() throws RbacManagerException { if ( !supportChildRole() ) { log.info( "child role feature not supported by the RBACManager impl: {}", rbacManager.getClass().getName() ); return; } RBACManager manager = rbacManager; assertNotNull( manager ); rbacManager.eraseDatabase(); eventTracker.rbacInit( true ); Role adminRole = manager.saveRole( getAdminRole() ); Role develRole = manager.saveRole( getDeveloperRole() ); assertEquals( 2, manager.getAllRoles().size() ); Role actualAdmin = manager.getRole( adminRole.getName() ); Role actualDevel = manager.getRole( develRole.getName() ); assertEquals( adminRole.getName(), actualAdmin.getName() ); assertEquals( adminRole.getChildRoleNames(), actualAdmin.getChildRoleNames() ); assertEquals( develRole, actualDevel ); // Now add a child role. manager.addChildRole( develRole, getProjectAdminRole() ); manager.saveRole( develRole ); assertEquals( 3, manager.getAllRoles().size() ); /* Assert some event tracker stuff */ assertEventTracker( 3, 0, 3, 0, true, true ); }
@Test public void testGetRolesDeep() throws RbacManagerException { rbacManager.eraseDatabase(); rbacDefaults.createDefaults(); // Setup User / Assignment with 1 role. String username = "bob"; UserAssignment assignment = rbacManager.createUserAssignment( username ); assignment.addRoleName( "Developer" ); rbacManager.saveUserAssignment( assignment ); assertEquals( incAssignements( 1 ), rbacManager.getAllUserAssignments().size() ); assertEquals( 4, rbacManager.getAllRoles().size() ); assertEquals( 6, rbacManager.getAllPermissions().size() ); // Get the List of Assigned Roles for user bob. Role devel = rbacManager.getRole( "Developer" ); assertNotNull( devel ); // First Depth. Role trusted = getChildRole( rbacManager, devel, "Trusted Developer", 1 ); // Second Depth. Role sysAdmin = getChildRole( rbacManager, trusted, "System Administrator", 1 ); // Third Depth. getChildRole( rbacManager, sysAdmin, "User Administrator", 1 ); }
@Test public void testUserAssignmentMultipleRoles() throws RbacManagerException { RBACManager manager = rbacManager; rbacManager.eraseDatabase(); eventTracker.rbacInit( true ); Role devRole = getDeveloperRole(); manager.saveRole( devRole ); // Setup User / Assignment with 1 role. String username = "bob"; UserAssignment assignment = manager.createUserAssignment( username ); assignment.addRoleName( devRole ); assignment = manager.saveUserAssignment( assignment ); assertEquals( incAssignements( 1 ), manager.getAllUserAssignments().size() ); assertEquals( 1, manager.getAllRoles().size() ); // assign the same role again to the same user assignment.addRoleName( devRole.getName() ); manager.saveUserAssignment( assignment ); // we certainly shouldn't have 2 roles here now assertEquals( 1, assignment.getRoleNames().size() ); /* Assert some event tracker stuff */ assertEventTracker( 1, 0, 1, 0, true, true ); }
@Test public void testAddGetPermission() throws RbacManagerException { assertNotNull( rbacManager ); rbacManager.eraseDatabase(); eventTracker.rbacInit( true ); Role adminRole = rbacManager.saveRole( getAdminRole() ); rbacManager.saveRole( getDeveloperRole() ); assertEquals( 2, rbacManager.getAllRoles().size() ); assertEquals( 2, rbacManager.getAllPermissions().size() ); Permission createUserPerm = rbacManager.createPermission( "CREATE_USER", "CREATE", "User" ); // perm shouldn't exist in manager (yet) assertEquals( 2, rbacManager.getAllPermissions().size() ); adminRole.addPermission( createUserPerm ); rbacManager.saveRole( adminRole ); // perm should exist in manager now. assertEquals( 3, rbacManager.getAllPermissions().size() ); Permission fetched = rbacManager.getPermission( "CREATE_USER" ); assertNotNull( fetched ); /* Assert some event tracker stuff */ assertEventTracker( 2, 0, 3, 0, true, true ); }
@Test public void testGetAssignedPermissionsDeep() throws RbacManagerException { this.clearCache(); assertNotNull( rbacManager ); rbacManager.eraseDatabase(); rbacDefaults.createDefaults(); // Setup User / Assignment with 1 role. String username = "bob"; UserAssignment assignment = rbacManager.createUserAssignment( username ); assignment.addRoleName( "Developer" ); rbacManager.saveUserAssignment( assignment ); assertEquals( incAssignements( 1 ), rbacManager.getAllUserAssignments().size() ); List<Permission> permissions = rbacManager.getAllPermissions(); Assertions.assertThat( permissions ).isNotNull().isNotEmpty().hasSize( 6 ); List<Role> roles = rbacManager.getAllRoles(); Assertions.assertThat( roles ).isNotNull().isNotEmpty().hasSize( 4 ); afterSetup(); // Get the List of Assigned Roles for user bob. Collection<Permission> assignedPermissions = rbacManager.getAssignedPermissions( username ); assertNotNull( assignedPermissions ); assertEquals( 6, assignedPermissions.size() ); }
@Test public void testGetAssignedPermissions() throws RbacManagerException { RBACManager manager = rbacManager; rbacManager.eraseDatabase(); // Setup 3 roles. manager.saveRole( getAdminRole() ); manager.saveRole( getProjectAdminRole() ); Role added = manager.saveRole( getDeveloperRole() ); String roleName = added.getName(); assertThat( manager.getAllRoles() ).isNotNull().isNotEmpty().hasSize( 3 ); assertThat( manager.getAllPermissions() ).isNotNull().isNotEmpty().hasSize( 3 ); // Setup User / Assignment with 1 role. String username = "bob"; UserAssignment assignment = manager.createUserAssignment( username ); assignment.addRoleName( roleName ); manager.saveUserAssignment( assignment ); assertThat( manager.getAllUserAssignments() ).isNotNull().isNotEmpty().hasSize( incAssignements( 1 ) ); assertThat( manager.getAllRoles() ).isNotNull().isNotEmpty().hasSize( 3 ); assertThat( manager.getAllPermissions() ).isNotNull().isNotEmpty().hasSize( 3 ); // Get the List of Assigned Roles for user bob. Collection<Permission> assignedPermissions = manager.getAssignedPermissions( username ); assertThat( assignedPermissions ).isNotNull().isNotEmpty().hasSize( 1 ); }
@Test public void testGetAssignedRoles() throws RbacManagerException { RBACManager manager = rbacManager; rbacManager.eraseDatabase(); Role adminRole = manager.saveRole( getAdminRole() ); Role projectAdminRole = manager.saveRole( getProjectAdminRole() ); Role developerRole = manager.saveRole( getDeveloperRole() ); // Setup 3 roles. assertEquals( 3, manager.getAllRoles().size() ); // Setup User / Assignment with 3 roles. String username = "bob"; UserAssignment assignment = manager.createUserAssignment( username ); assignment.addRoleName( developerRole.getName() ); assignment.addRoleName( projectAdminRole.getName() ); assignment.addRoleName( adminRole.getName() ); assignment = manager.saveUserAssignment( assignment ); assertThat( assignment.getRoleNames() ).isNotNull().isNotEmpty().hasSize( 3 ); assertThat( manager.getAllUserAssignments() ).isNotNull().isNotEmpty().hasSize( incAssignements( 1 ) ); assertThat( manager.getAllRoles() ).isNotNull().isNotEmpty().hasSize( 3 ); afterSetup(); // Get the List of Assigned Roles for user bob. Collection<Role> assignedRoles = manager.getAssignedRoles( username ); assertThat( assignedRoles ).isNotNull().isNotEmpty().hasSize( 3 ); }
public void backupRBACDatabase( RBACManager manager, File backupDirectory ) throws RbacManagerException, IOException, XMLStreamException { RbacDatabase database = new RbacDatabase(); database.setRoles( manager.getAllRoles() ); database.setUserAssignments( manager.getAllUserAssignments() ); database.setPermissions( manager.getAllPermissions() ); database.setOperations( manager.getAllOperations() ); database.setResources( manager.getAllResources() ); RbacJdoModelStaxWriter writer = new RbacJdoModelStaxWriter(); Writer fileWriter = createWriter( backupDirectory, RBAC_XML_NAME, database.getModelEncoding() ); try { writer.write( fileWriter, database ); } finally { IOUtils.closeQuietly( fileWriter ); } }
@Test public void testAddGetChildRoleViaName() throws RbacManagerException { RBACManager manager = rbacManager; rbacManager.eraseDatabase(); eventTracker.rbacInit( true ); assertNotNull( manager ); Role adminRole = manager.saveRole( getAdminRole() ); Role develRole = manager.saveRole( getDeveloperRole() ); assertEquals( 2, manager.getAllRoles().size() ); Role actualAdmin = manager.getRole( adminRole.getName() ); Role actualDevel = manager.getRole( develRole.getName() ); assertEquals( adminRole.getName(), actualAdmin.getName() ); assertEquals( adminRole.getChildRoleNames(), actualAdmin.getChildRoleNames() ); assertEquals( develRole, actualDevel ); // Now do a child role. Role projectRole = getProjectAdminRole(); String projectRoleName = projectRole.getName(); manager.saveRole( projectRole ); develRole.addChildRoleName( projectRoleName ); manager.saveRole( develRole ); assertEquals( 3, manager.getAllRoles().size() ); /* Assert some event tracker stuff */ assertEventTracker( 3, 0, 3, 0, true, true ); }
@Test public void testAddGetRole() throws RbacManagerException { assertNotNull( rbacManager ); rbacManager.eraseDatabase(); eventTracker.rbacInit( true ); Role adminRole = rbacManager.saveRole( getAdminRole() ); Role develRole = rbacManager.saveRole( getDeveloperRole() ); assertEquals( 2, rbacManager.getAllRoles().size() ); Role actualAdmin = rbacManager.getRole( adminRole.getName() ); Role actualDevel = rbacManager.getRole( develRole.getName() ); assertEquals( adminRole.getName(), actualAdmin.getName() ); assertEquals( adminRole.getChildRoleNames(), actualAdmin.getChildRoleNames() ); assertEquals( develRole, actualDevel ); /* Assert some event tracker stuff */ assertEventTracker( 2, 0, 2, 0, true, true ); }