You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/09/16 07:42:33 UTC

svn commit: r289387 - in /directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl: ACIItem.java ItemFirstACIItem.java Permission.java UserFirstACIItem.java

Author: trustin
Date: Thu Sep 15 22:42:29 2005
New Revision: 289387

URL: http://svn.apache.org/viewcvs?rev=289387&view=rev
Log:
* Fixed a typo error in ItemPermission
* Added ACIItem.toTuples() and its implementations

Modified:
    directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ACIItem.java
    directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemFirstACIItem.java
    directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/Permission.java
    directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserFirstACIItem.java

Modified: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ACIItem.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ACIItem.java?rev=289387&r1=289386&r2=289387&view=diff
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ACIItem.java (original)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ACIItem.java Thu Sep 15 22:42:29 2005
@@ -19,6 +19,7 @@
 package org.apache.ldap.common.acl;
 
 import java.io.Serializable;
+import java.util.Collection;
 
 public abstract class ACIItem implements Serializable
 {
@@ -64,4 +65,6 @@
     {
         return authenticationLevel;
     }
+    
+    public abstract Collection toTuples();
 }

Modified: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemFirstACIItem.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemFirstACIItem.java?rev=289387&r1=289386&r2=289387&view=diff
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemFirstACIItem.java (original)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/ItemFirstACIItem.java Thu Sep 15 22:42:29 2005
@@ -18,7 +18,10 @@
  */
 package org.apache.ldap.common.acl;
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.Set;
 
 public class ItemFirstACIItem extends ACIItem
@@ -74,5 +77,38 @@
                "authenticationLevel=" + getAuthenticationLevel() + ", " +
                "protectedItems=" + protectedItems + ", " +
                "itemPermissions=" + itemPermissions;
+    }
+
+    public Collection toTuples()
+    {
+        Collection tuples = new ArrayList();
+        for( Iterator i = itemPermissions.iterator(); i.hasNext(); )
+        {
+            ItemPermission itemPermission = ( ItemPermission ) i.next();
+            Set grants = itemPermission.getGrants();
+            Set denials = itemPermission.getDenials();
+            int precedence = itemPermission.getPrecedence() >= 0?
+                    itemPermission.getPrecedence() : this.getPrecedence();
+                    
+            if( grants.size() > 0 )
+            {
+                tuples.add( new ACITuple(
+                        itemPermission.getUserClasses(),
+                        getAuthenticationLevel(),
+                        getProtectedItems(),
+                        grants,
+                        precedence ) );
+            }
+            if( denials.size() > 0 )
+            {
+                tuples.add( new ACITuple(
+                        itemPermission.getUserClasses(),
+                        getAuthenticationLevel(),
+                        getProtectedItems(),
+                        denials,
+                        precedence ) );
+            }
+        }
+        return tuples;
     }
 }

Modified: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/Permission.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/Permission.java?rev=289387&r1=289386&r2=289387&view=diff
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/Permission.java (original)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/Permission.java Thu Sep 15 22:42:29 2005
@@ -25,7 +25,8 @@
 public abstract class Permission implements Serializable
 {
     private int precedence = -1;
-    private Set grantsAndDenials = new HashSet();
+    private Set grants = new HashSet();
+    private Set denials = new HashSet();
 
     protected Permission()
     {
@@ -47,16 +48,43 @@
     
     public boolean add( GrantAndDenial gad )
     {
-        return grantsAndDenials.add( gad );
+        if( gad.isGrant() )
+        {
+            return grants.add( gad );
+        }
+        else
+        {
+            return denials.add( gad );
+        }
     }
     
     public boolean remove( GrantAndDenial gad )
     {
-        return grantsAndDenials.remove( gad );
+        if( gad.isGrant() )
+        {
+            return grants.remove( gad );
+        }
+        else
+        {
+            return denials.remove( gad );
+        }
     }
     
     public Set getGrantsAndDenials()
     {
-        return new HashSet( grantsAndDenials );
+        Set result = new HashSet( grants.size() + denials.size() );
+        result.addAll( grants );
+        result.addAll( denials );
+        return result;
+    }
+    
+    public Set getGrants()
+    {
+        return new HashSet( grants );
+    }
+    
+    public Set getDenials()
+    {
+        return new HashSet( grants );
     }
 }

Modified: directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserFirstACIItem.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserFirstACIItem.java?rev=289387&r1=289386&r2=289387&view=diff
==============================================================================
--- directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserFirstACIItem.java (original)
+++ directory/shared/ldap/trunk/common/src/java/org/apache/ldap/common/acl/UserFirstACIItem.java Thu Sep 15 22:42:29 2005
@@ -18,7 +18,10 @@
  */
 package org.apache.ldap.common.acl;
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.Set;
 
 public class UserFirstACIItem extends ACIItem
@@ -46,7 +49,7 @@
         return userClasses.remove( userClass );
     }
     
-    public Set getUserClass()
+    public Set getUserClasses()
     {
         return new HashSet( userClasses );
     }
@@ -74,5 +77,38 @@
                "authenticationLevel=" + getAuthenticationLevel() + ", " +
                "userClasses=" + userClasses + ", " +
                "userPermissions=" + userPermissions;
+    }
+
+    public Collection toTuples()
+    {
+        Collection tuples = new ArrayList();
+        for( Iterator i = userPermissions.iterator(); i.hasNext(); )
+        {
+            UserPermission userPermission = ( UserPermission ) i.next();
+            Set grants = userPermission.getGrants();
+            Set denials = userPermission.getDenials();
+            int precedence = userPermission.getPrecedence() >= 0?
+                    userPermission.getPrecedence() : this.getPrecedence();
+            
+            if( grants.size() > 0 )
+            {
+                tuples.add( new ACITuple(
+                        getUserClasses(),
+                        getAuthenticationLevel(),
+                        userPermission.getProtectedItems(),
+                        grants,
+                        precedence ) );
+            }
+            if( denials.size() > 0 )
+            {
+                tuples.add( new ACITuple(
+                        getUserClasses(),
+                        getAuthenticationLevel(),
+                        userPermission.getProtectedItems(),
+                        denials,
+                        precedence ) );
+            }
+        }
+        return tuples;
     }
 }