for ( UserAssignment ua : userAssignments ) UserAssignment userAssignment = allUserAssignments.get( ua.getPrincipal() ); if ( userAssignment != null ) for ( String roleName : ua.getRoleNames() ) userAssignment.addRoleName( roleName ); allUserAssignments.put( ua.getPrincipal(), ua );
public void removeUserAssignment( UserAssignment userAssignment ) throws RbacObjectNotFoundException, RbacManagerException { RBACObjectAssertions.assertValid( "Remove User Assignment", userAssignment ); if ( userAssignment.isPermanent() ) { throw new RbacPermanentException( "Unable to delete permanent user assignment [" + userAssignment.getPrincipal() + "]" ); } fireRbacUserAssignmentRemoved( userAssignment ); assertUserAssignmentExists( userAssignment.getPrincipal() ); userAssignments.remove( userAssignment.getPrincipal() ); }
if ( StringUtils.isEmpty( assignment.getPrincipal() ) ) if ( assignment.getRoleNames() == null ) for ( String name : assignment.getRoleNames() )
private void invalidateCachedUserAssignment( UserAssignment userAssignment ) { if ( userAssignment != null ) { userAssignmentsCache.remove( userAssignment.getPrincipal() ); userPermissionsCache.remove( userAssignment.getPrincipal() ); } }
assignment.addRoleName( developerRole ); manager.saveUserAssignment( assignment ); bob.addRoleName( projectAdminRoleName ); bob = manager.saveUserAssignment( bob ); 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() ); bob.setRoleNames( roles ); bob = manager.saveUserAssignment( bob ); assertEquals( "Should have 2 assignable roles.", 2, manager.getUnassignedRoles( bob.getPrincipal() ).size() );
if ( userAssignment != null ) for ( String roleName : userAssignment.getRoleNames() ) ua.addRoleName( roleName );
ua.addRoleName( ArchivaRoleConstants.toRepositoryObserverRoleName( repoId ) ); rbacManager.saveUserAssignment( ua );
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; }
Arrays.asList( role.getName() ) ) ) assignment.removeRoleName( oldRoleName ); assignment.addRoleName( newRoleName ); rbacManager.saveUserAssignment( assignment );
/** * remove the role corresponding to the role using the resource passed in for resolving the * ${resource} expression */ public void removeTemplatedRole( String templateId, String resource ) throws RoleManagerException { ModelTemplate template = RoleModelUtils.getModelTemplate( blessedModel, templateId ); String roleName = template.getNamePrefix() + template.getDelimiter() + resource; try { Role role = rbacManager.getRole( roleName ); for ( UserAssignment assignment : rbacManager.getUserAssignmentsForRoles( Arrays.asList( role.getName() ) ) ) { assignment.removeRoleName( role ); rbacManager.saveUserAssignment( assignment ); } } catch ( RbacManagerException e ) { throw new RoleManagerException( "unable to remove role", e ); } templateProcessor.remove( blessedModel, templateId, resource ); }
assignment.setRoleNames( user.getAssignedRoles() );
public boolean userAssignmentExists( UserAssignment assignment ) { if ( assignment == null ) { return false; } return this.userAssignmentExists( assignment.getPrincipal() ); }
if ( userAssignment != null ) for ( String roleName : userAssignment.getRoleNames() ) ua.addRoleName( roleName );
try if ( !userManager.userExists( userAssignment.getPrincipal() ) ) User user = userManager.createUser( userAssignment.getPrincipal(), null, null ); userManager.addUser( user ); ldapRoleMapper.getRoles( userAssignment.getPrincipal(), context, getRealRoles() ); for ( String role : userAssignment.getRoleNames() ) allRoles.add( role ); ldapRoleMapper.saveUserRole( role, userAssignment.getPrincipal(), context ); currentUserRoles.add( role ); if ( !userAssignment.getRoleNames().contains( role ) && writableLdap ) ldapRoleMapper.removeUserRole( role, userAssignment.getPrincipal(), context ); userAssignmentsCache.put( userAssignment.getPrincipal(), userAssignment ); return userAssignment;
ua.addRoleName( ArchivaRoleConstants.toRepositoryObserverRoleName( repoId ) ); rbacManager.saveUserAssignment( ua );
if ( ua.getRoleNames() != null ) Iterator<String> it = ua.getRoleNames().listIterator(); while ( it.hasNext() )
assignment.addRoleName( role.getName() ); assignment = rbacManager.saveUserAssignment( assignment ); log.info( "{} role assigned to {}", role.getName(), username ); assignment.removeRoleName( role.getName() ); assignment = rbacManager.saveUserAssignment( assignment ); log.info( "{} role unassigned to {}", role.getName(), username );
public void unassignRoleByName( String roleName, String principal ) throws RoleManagerException { try { UserAssignment userAssignment; if ( rbacManager.userAssignmentExists( principal ) ) { userAssignment = rbacManager.getUserAssignment( principal ); } else { throw new RoleManagerException( "UserAssignment for principal " + principal + "does not exist, can't unassign role." ); } if ( !rbacManager.roleExists( roleName ) ) { throw new RoleManagerException( "Unable to unassign role: " + roleName + " does not exist." ); } userAssignment.removeRoleName( roleName ); rbacManager.saveUserAssignment( userAssignment ); } catch ( RbacManagerException e ) { throw new RoleManagerException( "Unable to unassign role: unable to manage user assignment", e ); } }
for ( UserAssignment ua : userAssignments ) UserAssignment userAssignment = allUserAssignments.get( ua.getPrincipal() ); if ( userAssignment != null ) for ( String roleName : ua.getRoleNames() ) userAssignment.addRoleName( roleName ); allUserAssignments.put( ua.getPrincipal(), ua );
public Collection<Role> getAssignedRoles( UserAssignment userAssignment ) throws RbacManagerException { return getAssignedRoles( userAssignment.getPrincipal() ); }