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]