public List<UserAssignment> getUserAssignmentsForRoles( Collection<String> roleNames ) throws RbacManagerException { List<UserAssignment> allUserAssignments = getAllUserAssignments(); List<UserAssignment> userAssignments = new ArrayList<UserAssignment>( allUserAssignments.size() ); for ( UserAssignment ua : allUserAssignments ) { for ( String roleName : roleNames ) { if ( ua.getRoleNames().contains( roleName ) ) { userAssignments.add( ua ); break; } } } return userAssignments; }
if ( ua.getRoleNames() != null ) Iterator<String> it = ua.getRoleNames().listIterator(); while ( it.hasNext() )
public Collection<Role> getEffectivelyAssignedRoles( UserAssignment ua ) throws RbacObjectNotFoundException, RbacManagerException { Set<Role> roleSet = new HashSet<Role>(); if ( ua != null && ua.getRoleNames() != null ) { boolean childRoleNamesUpdated = false; Iterator<String> it = ua.getRoleNames().listIterator(); while ( it.hasNext() ) { String roleName = it.next(); try { Role role = getRole( roleName ); gatherEffectiveRoles( role, roleSet ); } catch ( RbacObjectNotFoundException e ) { // Found a bad role name. remove it! it.remove(); childRoleNamesUpdated = true; } } if ( childRoleNamesUpdated ) { saveUserAssignment( ua ); } } return roleSet; }
if ( ua.getRoleNames() != null ) Iterator<String> it = ua.getRoleNames().listIterator(); while ( it.hasNext() )
if ( userAssignment != null ) for ( String roleName : ua.getRoleNames() )
if ( userAssignment != null ) for ( String roleName : ua.getRoleNames() )
if ( assignment.getRoleNames() == null ) for ( String name : assignment.getRoleNames() )
if ( userAssignment != null ) for ( String roleName : userAssignment.getRoleNames() )
if ( userAssignment != null ) for ( String roleName : userAssignment.getRoleNames() )
assertEquals( 2, bob.getRoleNames().size() ); assertEquals( 0, manager.getUnassignedRoles( bob.getPrincipal() ).size() ); List<String> roles = bob.getRoleNames(); assertEquals( 2, roles.size() ); bob.setRoleNames( roles ); bob = manager.saveUserAssignment( bob ); assertEquals( "Should only have 1 role under bob now.", 1, bob.getRoleNames().size() ); assertEquals( "Should have 2 total roles still.", 2, manager.getAllRoles().size() ); assertEquals( "Should have 1 assignable role", 1, manager.getUnassignedRoles( bob.getPrincipal() ).size() ); assertEquals( 1, cousin.getRoleNames().size() ); assertEquals( "Should only have 1 role under bob now.", 1, cousin.getRoleNames().size() ); assertEquals( "Should have 2 total roles still.", 2, manager.getAllRoles().size() );
@Test public void testUserAssignmentWithChildRoles() throws RbacManagerException { RBACManager manager = rbacManager; rbacManager.eraseDatabase(); Role developerRole = manager.saveRole( getDeveloperRole() ); Role adminRole = getAdminRole(); adminRole.addChildRoleName( developerRole.getName() ); adminRole = manager.saveRole( adminRole ); // don't use admin as ldap group need at least one member String adminPrincipal = "theadmin"; UserAssignment assignment = manager.createUserAssignment( adminPrincipal ); assignment.addRoleName( adminRole ); assignment = manager.saveUserAssignment( assignment ); assertEquals( 1, assignment.getRoleNames().size() ); assertEquals( 1, manager.getAssignedRoles( adminPrincipal ).size() ); }
@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 ); }
ldapRoleMapper.getRoles( userAssignment.getPrincipal(), context, getRealRoles() ); for ( String role : userAssignment.getRoleNames() ) if ( !userAssignment.getRoleNames().contains( role ) && writableLdap )
assertEquals( 1, assignment.getRoleNames().size() );
assertEquals( 1, assignment.getRoleNames().size() ); assertEquals( 1, assignment.getRoleNames().size() );
@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 ); }