Author: olamy
Date: Tue Jan 15 13:23:25 2013
New Revision: 1433399

URL: http://svn.apache.org/viewvc?rev=1433399&view=rev
Log:
ldap rbacmanager still 2 issues to fix

Modified:
    
archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
    
archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/LdapRoleMapper.java
    
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/AbstractRBACManager.java
    
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java
    
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java

Modified: 
archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
URL: 
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java?rev=1433399&r1=1433398&r2=1433399&view=diff
==============================================================================
--- 
archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
 (original)
+++ 
archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
 Tue Jan 15 13:23:25 2013
@@ -571,8 +571,80 @@ public class DefaultLdapRoleMapper
                 }
             }
         }
+    }
+
+    public boolean removeUserRole( String roleName, String username )
+        throws MappingException
+    {
+        String groupName = HashBiMap.create( getLdapGroupMappings() 
).inverse().get( roleName );
+
+        if ( groupName == null )
+        {
+            log.warn( "no group found for role '{}", roleName );
+            return false;
+        }
+
+        LdapConnection ldapConnection = null;
+
+        NamingEnumeration<SearchResult> namingEnumeration = null;
+        try
+        {
+            ldapConnection = ldapConnectionFactory.getConnection();
+
+            DirContext context = ldapConnection.getDirContext();
+
+            SearchControls searchControls = new SearchControls();
+
+            searchControls.setDerefLinkFlag( true );
+            searchControls.setSearchScope( SearchControls.SUBTREE_SCOPE );
+
+            String filter = "objectClass=" + getLdapGroupClass();
+
+            namingEnumeration = context.search( "cn=" + groupName + "," + 
getGroupsDn(), filter, searchControls );
+
+            while ( namingEnumeration.hasMore() )
+            {
+                SearchResult searchResult = namingEnumeration.next();
+                Attribute attribute = searchResult.getAttributes().get( 
"uniquemember" );
+                if ( attribute != null )
+                {
+                    BasicAttribute basicAttribute = new BasicAttribute( 
"uniquemember" );
+                    basicAttribute.add( "uid=" + username + "," + 
getGroupsDn() );
+                    context.modifyAttributes( "cn=" + groupName + "," + 
getGroupsDn(), new ModificationItem[]{
+                        new ModificationItem( DirContext.REMOVE_ATTRIBUTE, 
basicAttribute ) } );
+                }
+                return true;
+            }
 
+            return false;
+        }
+        catch ( LdapException e )
+        {
+            throw new MappingException( e.getMessage(), e );
+        }
+        catch ( NamingException e )
+        {
+            throw new MappingException( e.getMessage(), e );
+        }
 
+        finally
+        {
+            if ( ldapConnection != null )
+            {
+                ldapConnection.close();
+            }
+            if ( namingEnumeration != null )
+            {
+                try
+                {
+                    namingEnumeration.close();
+                }
+                catch ( NamingException e )
+                {
+                    log.warn( "failed to close search results", e );
+                }
+            }
+        }
     }
 
     public void removeAllRoles()

Modified: 
archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/LdapRoleMapper.java
URL: 
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/LdapRoleMapper.java?rev=1433399&r1=1433398&r2=1433399&view=diff
==============================================================================
--- 
archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/LdapRoleMapper.java
 (original)
+++ 
archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/LdapRoleMapper.java
 Tue Jan 15 13:23:25 2013
@@ -132,6 +132,9 @@ public interface LdapRoleMapper
     boolean saveUserRole( String roleName, String username )
         throws MappingException;
 
+    boolean removeUserRole( String roleName, String username )
+        throws MappingException;
+
     void removeAllRoles()
         throws MappingException;
 

Modified: 
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/AbstractRBACManager.java
URL: 
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/AbstractRBACManager.java?rev=1433399&r1=1433398&r2=1433399&view=diff
==============================================================================
--- 
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/AbstractRBACManager.java
 (original)
+++ 
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/AbstractRBACManager.java
 Tue Jan 15 13:23:25 2013
@@ -66,10 +66,8 @@ public abstract class AbstractRBACManage
 
     public void fireRbacInit( boolean freshdb )
     {
-        Iterator<RBACManagerListener> it = listeners.iterator();
-        while ( it.hasNext() )
+        for ( RBACManagerListener listener : listeners )
         {
-            RBACManagerListener listener = it.next();
             try
             {
                 listener.rbacInit( freshdb );
@@ -83,10 +81,8 @@ public abstract class AbstractRBACManage
 
     public void fireRbacRoleSaved( Role role )
     {
-        Iterator<RBACManagerListener> it = listeners.iterator();
-        while ( it.hasNext() )
+        for ( RBACManagerListener listener : listeners )
         {
-            RBACManagerListener listener = it.next();
             try
             {
                 listener.rbacRoleSaved( role );
@@ -100,10 +96,8 @@ public abstract class AbstractRBACManage
 
     public void fireRbacRoleRemoved( Role role )
     {
-        Iterator<RBACManagerListener> it = listeners.iterator();
-        while ( it.hasNext() )
+        for ( RBACManagerListener listener : listeners )
         {
-            RBACManagerListener listener = it.next();
             try
             {
                 listener.rbacRoleRemoved( role );
@@ -117,10 +111,8 @@ public abstract class AbstractRBACManage
 
     public void fireRbacPermissionSaved( Permission permission )
     {
-        Iterator<RBACManagerListener> it = listeners.iterator();
-        while ( it.hasNext() )
+        for ( RBACManagerListener listener : listeners )
         {
-            RBACManagerListener listener = it.next();
             try
             {
                 listener.rbacPermissionSaved( permission );
@@ -135,10 +127,8 @@ public abstract class AbstractRBACManage
 
     public void fireRbacPermissionRemoved( Permission permission )
     {
-        Iterator<RBACManagerListener> it = listeners.iterator();
-        while ( it.hasNext() )
+        for ( RBACManagerListener listener : listeners )
         {
-            RBACManagerListener listener = it.next();
             try
             {
                 listener.rbacPermissionRemoved( permission );
@@ -153,10 +143,8 @@ public abstract class AbstractRBACManage
 
     public void fireRbacUserAssignmentSaved( UserAssignment userAssignment )
     {
-        Iterator<RBACManagerListener> it = listeners.iterator();
-        while ( it.hasNext() )
+        for ( RBACManagerListener listener : listeners )
         {
-            RBACManagerListener listener = it.next();
             try
             {
                 listener.rbacUserAssignmentSaved( userAssignment );
@@ -172,10 +160,8 @@ public abstract class AbstractRBACManage
 
     public void fireRbacUserAssignmentRemoved( UserAssignment userAssignment )
     {
-        Iterator<RBACManagerListener> it = listeners.iterator();
-        while ( it.hasNext() )
+        for ( RBACManagerListener listener : listeners )
         {
-            RBACManagerListener listener = it.next();
             try
             {
                 listener.rbacUserAssignmentRemoved( userAssignment );

Modified: 
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java
URL: 
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java?rev=1433399&r1=1433398&r2=1433399&view=diff
==============================================================================
--- 
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java
 (original)
+++ 
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java
 Tue Jan 15 13:23:25 2013
@@ -19,6 +19,8 @@ package org.apache.archiva.redback.rbac.
  * under the License.
  */
 
+import com.google.common.base.Function;
+import com.google.common.collect.Lists;
 import org.apache.archiva.redback.common.ldap.MappingException;
 import org.apache.archiva.redback.common.ldap.connection.LdapConnection;
 import org.apache.archiva.redback.common.ldap.connection.LdapConnectionFactory;
@@ -33,9 +35,11 @@ import org.apache.archiva.redback.rbac.O
 import org.apache.archiva.redback.rbac.Permission;
 import org.apache.archiva.redback.rbac.RBACManager;
 import org.apache.archiva.redback.rbac.RBACManagerListener;
+import org.apache.archiva.redback.rbac.RBACObjectAssertions;
 import org.apache.archiva.redback.rbac.RbacManagerException;
 import org.apache.archiva.redback.rbac.RbacObjectInvalidException;
 import org.apache.archiva.redback.rbac.RbacObjectNotFoundException;
+import org.apache.archiva.redback.rbac.RbacPermanentException;
 import org.apache.archiva.redback.rbac.Resource;
 import org.apache.archiva.redback.rbac.Role;
 import org.apache.archiva.redback.rbac.UserAssignment;
@@ -112,6 +116,7 @@ public class LdapRbacManager
 
     public void addListener( RBACManagerListener listener )
     {
+        super.addListener( listener );
         this.rbacImpl.addListener( listener );
     }
 
@@ -171,7 +176,7 @@ public class LdapRbacManager
      * @see org.apache.archiva.redback.rbac.RBACManager#getAllAssignableRoles()
      */
     public List<Role> getAllAssignableRoles()
-        throws RbacManagerException, RbacObjectNotFoundException
+        throws RbacManagerException
     {
         try
         {
@@ -264,7 +269,7 @@ public class LdapRbacManager
     }
 
     public Map<String, List<Permission>> getAssignedPermissionMap( String 
username )
-        throws RbacObjectNotFoundException, RbacManagerException
+        throws RbacManagerException
     {
         // TODO here !!
         return this.rbacImpl.getAssignedPermissionMap( username );
@@ -304,7 +309,7 @@ public class LdapRbacManager
     }
 
     public Collection<Role> getAssignedRoles( String username )
-        throws RbacObjectNotFoundException, RbacManagerException
+        throws RbacManagerException
     {
         try
         {
@@ -332,7 +337,7 @@ public class LdapRbacManager
     }
 
     public Collection<Role> getAssignedRoles( UserAssignment userAssignment )
-        throws RbacObjectNotFoundException, RbacManagerException
+        throws RbacManagerException
     {
         return getAssignedRoles( userAssignment.getPrincipal() );
         //return this.rbacImpl.getAssignedRoles( userAssignment );
@@ -351,21 +356,21 @@ public class LdapRbacManager
     }
 
     public Collection<Role> getEffectivelyAssignedRoles( String username )
-        throws RbacObjectNotFoundException, RbacManagerException
+        throws RbacManagerException
     {
         // TODO here !!
         return this.rbacImpl.getEffectivelyAssignedRoles( username );
     }
 
     public Collection<Role> getEffectivelyUnassignedRoles( String username )
-        throws RbacManagerException, RbacObjectNotFoundException
+        throws RbacManagerException
     {
         // TODO here !!
         return this.rbacImpl.getEffectivelyUnassignedRoles( username );
     }
 
     public Set<Role> getEffectiveRoles( Role role )
-        throws RbacObjectNotFoundException, RbacManagerException
+        throws RbacManagerException
     {
         return this.rbacImpl.getEffectiveRoles( role );
     }
@@ -377,44 +382,75 @@ public class LdapRbacManager
     }
 
     public Operation getOperation( String operationName )
-        throws RbacObjectNotFoundException, RbacManagerException
+        throws RbacManagerException
     {
         return this.rbacImpl.getOperation( operationName );
     }
 
     public Permission getPermission( String permissionName )
-        throws RbacObjectNotFoundException, RbacManagerException
+        throws RbacManagerException
     {
         return this.rbacImpl.getPermission( permissionName );
     }
 
     public Resource getResource( String resourceIdentifier )
-        throws RbacObjectNotFoundException, RbacManagerException
+        throws RbacManagerException
     {
         return this.rbacImpl.getResource( resourceIdentifier );
     }
 
     public Role getRole( String roleName )
-        throws RbacObjectNotFoundException, RbacManagerException
+        throws RbacManagerException
     {
+        //verify it's a ldap group
+        try
+        {
+            if ( !ldapRoleMapper.getAllRoles().contains( roleName ) )
+            {
+                return null;
+            }
+        }
+        catch ( MappingException e )
+        {
+            throw new RbacManagerException( e.getMessage(), e );
+        }
         return this.rbacImpl.getRole( roleName );
     }
 
     public Map<String, Role> getRoles( Collection<String> roleNames )
-        throws RbacObjectNotFoundException, RbacManagerException
+        throws RbacManagerException
     {
         return this.rbacImpl.getRoles( roleNames );
     }
 
     public Collection<Role> getUnassignedRoles( String username )
-        throws RbacManagerException, RbacObjectNotFoundException
+        throws RbacManagerException
     {
-        // TODO here !!
-        return this.rbacImpl.getUnassignedRoles( username );
+        try
+        {
+            List<String> allRoles = ldapRoleMapper.getAllRoles();
+            final List<String> userRoles = ldapRoleMapper.getRoles( username );
+
+            List<Role> unassignedRoles = new ArrayList<Role>();
+
+            for ( String roleName : allRoles )
+            {
+                if ( !userRoles.contains( roleName ) )
+                {
+                    // TODO real role with permission ?
+                    unassignedRoles.add( new RoleImpl( roleName ) );
+                }
+            }
+            return unassignedRoles;
+        }
+        catch ( MappingException e )
+        {
+            throw new RbacManagerException( e.getMessage(), e );
+        }
     }
 
     public UserAssignment getUserAssignment( String username )
-        throws RbacObjectNotFoundException, RbacManagerException
+        throws RbacManagerException
     {
         try
         {
@@ -525,62 +561,83 @@ public class LdapRbacManager
     }
 
     public void removeOperation( Operation operation )
-        throws RbacObjectNotFoundException, RbacObjectInvalidException, 
RbacManagerException
+        throws RbacManagerException
     {
         this.rbacImpl.removeOperation( operation );
     }
 
     public void removeOperation( String operationName )
-        throws RbacObjectNotFoundException, RbacObjectInvalidException, 
RbacManagerException
+        throws RbacManagerException
     {
         this.rbacImpl.removeOperation( operationName );
     }
 
     public void removePermission( Permission permission )
-        throws RbacObjectNotFoundException, RbacObjectInvalidException, 
RbacManagerException
+        throws RbacManagerException
     {
         this.rbacImpl.removePermission( permission );
     }
 
     public void removePermission( String permissionName )
-        throws RbacObjectNotFoundException, RbacObjectInvalidException, 
RbacManagerException
+        throws RbacManagerException
     {
         this.rbacImpl.removePermission( permissionName );
     }
 
     public void removeResource( Resource resource )
-        throws RbacObjectNotFoundException, RbacObjectInvalidException, 
RbacManagerException
+        throws RbacManagerException
     {
         this.rbacImpl.removeResource( resource );
     }
 
     public void removeResource( String resourceIdentifier )
-        throws RbacObjectNotFoundException, RbacObjectInvalidException, 
RbacManagerException
+        throws RbacManagerException
     {
         this.rbacImpl.removeResource( resourceIdentifier );
     }
 
     public void removeRole( Role role )
-        throws RbacObjectNotFoundException, RbacObjectInvalidException, 
RbacManagerException
+        throws RbacManagerException
     {
-        this.rbacImpl.removeRole( role );
+        RBACObjectAssertions.assertValid( role );
+
+        if ( role.isPermanent() )
+        {
+            throw new RbacPermanentException( "Unable to delete permanent role 
[" + role.getName() + "]" );
+        }
+        if ( writableLdap )
+        {
+            try
+            {
+                ldapRoleMapper.removeRole( role.getName() );
+            }
+            catch ( MappingException e )
+            {
+                throw new RbacManagerException( e.getMessage(), e );
+            }
+            fireRbacRoleRemoved( role );
+        }
     }
 
     public void removeRole( String roleName )
-        throws RbacObjectNotFoundException, RbacObjectInvalidException, 
RbacManagerException
+        throws RbacManagerException
     {
-        this.rbacImpl.removeRole( roleName );
+        if ( roleName == null )
+        {
+            return;
+        }
+        removeRole( new RoleImpl( roleName ) );
     }
 
     public void removeUserAssignment( String username )
-        throws RbacObjectNotFoundException, RbacObjectInvalidException, 
RbacManagerException
+        throws RbacManagerException
     {
         // TODO ldap cannot or isWritable ldap ?
         this.rbacImpl.removeUserAssignment( username );
     }
 
     public void removeUserAssignment( UserAssignment userAssignment )
-        throws RbacObjectNotFoundException, RbacObjectInvalidException, 
RbacManagerException
+        throws RbacManagerException
     {
         // TODO ldap cannot or isWritable ldap ?
         this.rbacImpl.removeUserAssignment( userAssignment );
@@ -625,31 +682,32 @@ public class LdapRbacManager
     }
 
     public Operation saveOperation( Operation operation )
-        throws RbacObjectInvalidException, RbacManagerException
+        throws RbacManagerException
     {
         return this.rbacImpl.saveOperation( operation );
     }
 
     public Permission savePermission( Permission permission )
-        throws RbacObjectInvalidException, RbacManagerException
+        throws RbacManagerException
     {
         return this.rbacImpl.savePermission( permission );
     }
 
     public Resource saveResource( Resource resource )
-        throws RbacObjectInvalidException, RbacManagerException
+        throws RbacManagerException
     {
         return this.rbacImpl.saveResource( resource );
     }
 
     public synchronized Role saveRole( Role role )
-        throws RbacObjectInvalidException, RbacManagerException
+        throws RbacManagerException
     {
         if ( writableLdap )
         {
             try
             {
                 ldapRoleMapper.saveRole( role.getName() );
+                fireRbacRoleSaved( role );
             }
             catch ( MappingException e )
             {
@@ -657,10 +715,11 @@ public class LdapRbacManager
             }
         }
         return this.rbacImpl.saveRole( role );
+        //return new RoleImpl( role.getName(), role.getPermissions() );
     }
 
     public synchronized void saveRoles( Collection<Role> roles )
-        throws RbacObjectInvalidException, RbacManagerException
+        throws RbacManagerException
     {
         if ( writableLdap )
         {
@@ -669,6 +728,7 @@ public class LdapRbacManager
                 for ( Role role : roles )
                 {
                     ldapRoleMapper.saveRole( role.getName() );
+                    fireRbacRoleSaved( role );
                 }
             }
             catch ( MappingException e )
@@ -677,17 +737,19 @@ public class LdapRbacManager
             }
         }
         this.rbacImpl.saveRoles( roles );
+
     }
 
     public UserAssignment saveUserAssignment( UserAssignment userAssignment )
-        throws RbacObjectInvalidException, RbacManagerException
+        throws RbacManagerException
     {
+
         try
         {
             if ( !userManager.userExists( userAssignment.getPrincipal() ) )
             {
                 User user = userManager.createUser( 
userAssignment.getPrincipal(), null, null );
-                user = userManager.addUser( user );
+                userManager.addUser( user );
             }
 
             List<String> allRoles = ldapRoleMapper.getAllRoles();
@@ -702,10 +764,21 @@ public class LdapRbacManager
                     if ( !allRoles.contains( role ) )
                     {
                         ldapRoleMapper.saveRole( role );
+                        allRoles.add( role );
                     }
                     ldapRoleMapper.saveUserRole( role, 
userAssignment.getPrincipal() );
+                    currentUserRoles.add( role );
                 }
+            }
+
 
+
+            for ( String role : currentUserRoles )
+            {
+                if ( !userAssignment.getRoleNames().contains( role ) && 
writableLdap )
+                {
+                    ldapRoleMapper.removeUserRole( role, 
userAssignment.getPrincipal() );
+                }
             }
 
             return userAssignment;
@@ -719,7 +792,9 @@ public class LdapRbacManager
             throw new RbacManagerException( e.getMessage(), e );
         }
 
-        //return this.rbacImpl.saveUserAssignment( userAssignment );
+        //this.rbacImpl.saveUserAssignment( userAssignment );
+
+        //return userAssignment;
     }
 
     public boolean userAssignmentExists( String principal )
@@ -769,29 +844,41 @@ public class LdapRbacManager
     {
         private String name;
 
+        private String description;
+
+        private List<Permission> permissions = new ArrayList<Permission>();
+
+        private List<String> childRoleNames = new ArrayList<String>();
+
         private RoleImpl( String name )
         {
             this.name = name;
         }
 
+        private RoleImpl( String name, List<Permission> permissions )
+        {
+            this.name = name;
+            this.permissions = permissions;
+        }
+
         public void addPermission( Permission permission )
         {
-            // no op
+            this.permissions.add( permission );
         }
 
         public void addChildRoleName( String name )
         {
-            // no op
+            this.childRoleNames.add( name );
         }
 
         public List<String> getChildRoleNames()
         {
-            return Collections.emptyList();
+            return this.childRoleNames;
         }
 
         public String getDescription()
         {
-            return null;
+            return this.description;
         }
 
         public String getName()
@@ -801,7 +888,7 @@ public class LdapRbacManager
 
         public List<Permission> getPermissions()
         {
-            return Collections.emptyList();
+            return this.permissions;
         }
 
         public boolean isAssignable()
@@ -811,7 +898,7 @@ public class LdapRbacManager
 
         public void removePermission( Permission permission )
         {
-            // no op
+            this.permissions.remove( permission );
         }
 
         public void setAssignable( boolean assignable )
@@ -821,12 +908,12 @@ public class LdapRbacManager
 
         public void setChildRoleNames( List<String> names )
         {
-            // no op
+            this.childRoleNames = names;
         }
 
         public void setDescription( String description )
         {
-            // no op
+            this.description = description;
         }
 
         public void setName( String name )
@@ -836,7 +923,7 @@ public class LdapRbacManager
 
         public void setPermissions( List<Permission> permissions )
         {
-            // no op
+            this.permissions = permissions;
         }
 
         public boolean isPermanent()
@@ -858,6 +945,34 @@ public class LdapRbacManager
             sb.append( '}' );
             return sb.toString();
         }
+
+        @Override
+        public boolean equals( Object o )
+        {
+            if ( this == o )
+            {
+                return true;
+            }
+            if ( o == null || getClass() != o.getClass() )
+            {
+                return false;
+            }
+
+            RoleImpl role = (RoleImpl) o;
+
+            if ( name != null ? !name.equals( role.name ) : role.name != null )
+            {
+                return false;
+            }
+
+            return true;
+        }
+
+        @Override
+        public int hashCode()
+        {
+            return name != null ? name.hashCode() : 0;
+        }
     }
 
     private static class UserAssignmentImpl

Modified: 
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java
URL: 
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java?rev=1433399&r1=1433398&r2=1433399&view=diff
==============================================================================
--- 
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java
 (original)
+++ 
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java
 Tue Jan 15 13:23:25 2013
@@ -462,8 +462,7 @@ public abstract class AbstractRbacManage
 
         Set<Permission> assignedPermissions = manager.getAssignedPermissions( 
adminPrincipal );
 
-        assertNotNull( assignedPermissions );
-        assertEquals( 1, assignedPermissions.size() );
+        Assertions.assertThat( assignedPermissions 
).isNotNull().isNotEmpty().hasSize( 1 );
 
         /* Assert some event tracker stuff */
         assertEventTracker( 1, 0, 1, 0, true, true );


Reply via email to