public Role( org.apache.archiva.redback.rbac.Role role ) { this.name = role.getName(); this.description = role.getDescription(); this.assignable = role.isAssignable(); this.childRoleNames = role.getChildRoleNames() == null ? new ArrayList<String>( 0 ) : new ArrayList<String>( role.getChildRoleNames() ); if ( role.getPermissions() == null ) { this.permissions = new ArrayList<Permission>( 0 ); } else { for ( org.apache.archiva.redback.rbac.Permission p : role.getPermissions() ) { this.permissions.add( new Permission( p ) ); } } }
Iterator<String> it = role.getChildRoleNames().listIterator(); List<String> updatedChildRoleList = new ArrayList<String>( role.getChildRoleNames().size() );
for ( String roleName : role.getChildRoleNames() )
public Role getChildRole( RBACManager manager, Role role, String expectedChildRoleName, int childRoleCount ) throws RbacManagerException { assertTrue( role.hasChildRoles() ); List<String> childNames = role.getChildRoleNames(); assertNotNull( childNames ); assertEquals( 1, childNames.size() ); String childName = (String) childNames.get( 0 ); assertNotNull( childName ); Role childRole = manager.getRole( childName ); assertNotNull( childRole ); assertEquals( expectedChildRoleName, childRole.getName() ); return childRole; }
@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 ); }
ldapRoleMapper.saveRole( role.getName(), context ); if ( !role.getChildRoleNames().isEmpty() ) for ( String roleName : role.getChildRoleNames() )
@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 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 ); }
@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 ); }
assertEquals( adminRole.getChildRoleNames(), actualAdmin.getChildRoleNames() ); assertEquals( develRole, actualDevel );