You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2013/01/21 17:36:10 UTC

svn commit: r1436466 - /archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java

Author: olamy
Date: Mon Jan 21 16:36:10 2013
New Revision: 1436466

URL: http://svn.apache.org/viewvc?rev=1436466&view=rev
Log:
implements those methods with ldap call

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

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=1436466&r1=1436465&r2=1436466&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 Mon Jan 21 16:36:10 2013
@@ -982,22 +982,46 @@ public class LdapRbacManager
             closeContext( context );
             closeLdapConnection( ldapConnection );
         }
-
-        //this.rbacImpl.saveUserAssignment( userAssignment );
-
-        //return userAssignment;
     }
 
     public boolean userAssignmentExists( String principal )
     {
-        // TODO here
-        return this.rbacImpl.userAssignmentExists( principal );
+        LdapConnection ldapConnection = null;
+        DirContext context = null;
+        try
+        {
+            ldapConnection = ldapConnectionFactory.getConnection();
+            context = ldapConnection.getDirContext();
+            List<String> roles = ldapRoleMapper.getRoles( principal, context );
+            if ( roles == null || roles.isEmpty() )
+            {
+                return false;
+            }
+            return true;
+        }
+        catch ( LdapException e )
+        {
+            log.warn( "fail to call userAssignmentExists: {}", e.getMessage() );
+        }
+        catch ( MappingException e )
+        {
+            log.warn( "fail to call userAssignmentExists: {}", e.getMessage() );
+        }
+        finally
+        {
+            closeContext( context );
+            closeLdapConnection( ldapConnection );
+        }
+        return false;
     }
 
     public boolean userAssignmentExists( UserAssignment assignment )
     {
-        // TODO here
-        return this.rbacImpl.userAssignmentExists( assignment );
+        if ( assignment == null )
+        {
+            return false;
+        }
+        return this.userAssignmentExists( assignment.getPrincipal() );
     }
 
     public RBACManager getRbacImpl()