diff options
author | Olivier Lamy <olamy@apache.org> | 2013-01-15 13:23:50 +0000 |
---|---|---|
committer | Olivier Lamy <olamy@apache.org> | 2013-01-15 13:23:50 +0000 |
commit | 18dbda5efbc3b905a48fd7ddb34d74ec292054d9 (patch) | |
tree | 380e07c866c36216e944bbf87555cc41615ee2d8 /redback-rbac | |
parent | fe2ebb0961c114a91782185254b6afea16ab51e0 (diff) | |
download | archiva-18dbda5efbc3b905a48fd7ddb34d74ec292054d9.tar.gz archiva-18dbda5efbc3b905a48fd7ddb34d74ec292054d9.zip |
ldap rbacmanager pass tck
git-svn-id: https://svn.apache.org/repos/asf/archiva/redback/redback-core/trunk@1433400 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'redback-rbac')
4 files changed, 13 insertions, 7 deletions
diff --git a/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java b/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java index 57edba7c5..4953a4699 100644 --- a/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java +++ b/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java @@ -437,8 +437,7 @@ public class LdapRbacManager { if ( !userRoles.contains( roleName ) ) { - // TODO real role with permission ? - unassignedRoles.add( new RoleImpl( roleName ) ); + unassignedRoles.add( rbacImpl.getRole( roleName ) ); } } return unassignedRoles; @@ -707,6 +706,13 @@ public class LdapRbacManager try { ldapRoleMapper.saveRole( role.getName() ); + if ( !role.getChildRoleNames().isEmpty() ) + { + for ( String roleName : role.getChildRoleNames() ) + { + ldapRoleMapper.saveRole( roleName ); + } + } fireRbacRoleSaved( role ); } catch ( MappingException e ) @@ -771,8 +777,6 @@ public class LdapRbacManager } } - - for ( String role : currentUserRoles ) { if ( !userAssignment.getRoleNames().contains( role ) && writableLdap ) diff --git a/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManagerTest.java b/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManagerTest.java index e9c46defe..dd8c1c5ce 100644 --- a/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManagerTest.java +++ b/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManagerTest.java @@ -300,6 +300,6 @@ public class LdapRbacManagerTest protected boolean supportChildRole() { - return false; + return true; } } diff --git a/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/security.properties b/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/security.properties index 07c91f603..79f4fde79 100644 --- a/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/security.properties +++ b/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/security.properties @@ -21,6 +21,7 @@ ldap.config.groups.role.user-admin=User Administrator ldap.config.groups.role.sys-admin=System Administrator ldap.config.groups.role.trusted-dev=Trusted Developer ldap.config.groups.role.developer=Developer +ldap.config.groups.role.super-developer=SUPER_DEVELOPER ldap.config.groups.role.thetestrole=Test Role diff --git a/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java b/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java index 8813597c9..155c46838 100644 --- a/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java +++ b/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java @@ -426,13 +426,14 @@ public abstract class AbstractRbacManagerTestCase adminRole = manager.saveRole( adminRole ); - String adminPrincipal = "admin"; + // 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( incAssignements( 1 ), manager.getAssignedRoles( adminPrincipal ).size() ); + assertEquals( 1, manager.getAssignedRoles( adminPrincipal ).size() ); } @Test |