weaver      2004/10/12 13:18:47

  Modified:    components/security/src/java/org/apache/jetspeed/security/impl
                        PermissionManagerImpl.java
  Log:
  see: http://nagoya.apache.org/jira/browse/JS2-145
  
  Revision  Changes    Path
  1.8       +12 -7     
jakarta-jetspeed-2/components/security/src/java/org/apache/jetspeed/security/impl/PermissionManagerImpl.java
  
  Index: PermissionManagerImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/components/security/src/java/org/apache/jetspeed/security/impl/PermissionManagerImpl.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- PermissionManagerImpl.java        2 Oct 2004 23:05:09 -0000       1.7
  +++ PermissionManagerImpl.java        12 Oct 2004 20:18:46 -0000      1.8
  @@ -21,6 +21,7 @@
   import java.sql.Timestamp;
   import java.util.ArrayList;
   import java.util.Collection;
  +import java.util.Collections;
   import java.util.Iterator;
   
   import org.apache.commons.logging.Log;
  @@ -101,7 +102,9 @@
           {
               internalPermissions = internalPrincipal.getPermissions();
           }
  -        return getSecurityPermissions(internalPermissions);
  +        Permissions permissions = new Permissions();
  +        appendSecurityPermissions(internalPermissions, permissions);
  +        return permissions;
       }
   
       /**
  @@ -127,7 +130,7 @@
                   Collection internalPermissions = internalPrincipal.getPermissions();
                   if (null != internalPermissions)
                   {
  -                    permissions = getSecurityPermissions(internalPermissions);
  +                    permissions = appendSecurityPermissions(internalPermissions, 
permissions);
                   }
               }
           }
  @@ -161,15 +164,14 @@
       /**
        * <p>
        * Iterate through a collection of [EMAIL PROTECTED] InternalPermission}and 
build a
  -     * collection of [EMAIL PROTECTED] java.security.Permission}.
  +     * unique collection of [EMAIL PROTECTED] java.security.Permission}.
        * </p>
        * 
        * @param omPermissions The collection of [EMAIL PROTECTED] InternalPermission}.
        * @return The collection of [EMAIL PROTECTED] java.security.Permission}.
        */
  -    private Permissions getSecurityPermissions(Collection omPermissions)
  -    {
  -        Permissions permissions = new Permissions();
  +    private Permissions appendSecurityPermissions(Collection omPermissions, 
Permissions permissions)
  +    {     
           Iterator internalPermissionsIter = omPermissions.iterator();
           while (internalPermissionsIter.hasNext())
           {
  @@ -182,7 +184,10 @@
                   Constructor permissionConstructor = 
permissionClass.getConstructor(parameterTypes);
                   Object[] initArgs = { internalPermission.getName(), 
internalPermission.getActions() };
                   permission = (Permission) 
permissionConstructor.newInstance(initArgs);
  -                permissions.add(permission);
  +                if(!Collections.list(permissions.elements()).contains(permission))
  +                {
  +                    permissions.add(permission);
  +                }
               }
               catch (Exception e)
               {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to