epugh 2003/12/10 15:20:24 Modified: security/adapters/turbine/src/java/org/apache/fulcrum/security/adapter/turbine AccessControlListAdapter.java Log: Allow the Turbine ACL hasRole(string) to work! Revision Changes Path 1.2 +17 -6 jakarta-turbine-fulcrum/security/adapters/turbine/src/java/org/apache/fulcrum/security/adapter/turbine/AccessControlListAdapter.java Index: AccessControlListAdapter.java =================================================================== RCS file: /home/cvs/jakarta-turbine-fulcrum/security/adapters/turbine/src/java/org/apache/fulcrum/security/adapter/turbine/AccessControlListAdapter.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AccessControlListAdapter.java 5 Dec 2003 23:33:16 -0000 1.1 +++ AccessControlListAdapter.java 10 Dec 2003 23:20:24 -0000 1.2 @@ -58,6 +58,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.fulcrum.security.model.basic.BasicAccessControlList; import org.apache.fulcrum.security.model.dynamic.DynamicAccessControlList; import org.apache.turbine.om.security.Group; import org.apache.turbine.om.security.Permission; @@ -77,7 +78,7 @@ public class AccessControlListAdapter implements AccessControlList { private static Log log = LogFactory.getLog(AccessControlListAdapter.class); - private DynamicAccessControlList acl; + private org.apache.fulcrum.security.acl.AccessControlList acl; /** * */ @@ -85,7 +86,7 @@ { super(); } - public AccessControlListAdapter(DynamicAccessControlList acl) + public AccessControlListAdapter(org.apache.fulcrum.security.acl.AccessControlList acl) { super(); this.acl = acl; @@ -120,8 +121,11 @@ */ public PermissionSet getPermissions() { + if (!(acl instanceof DynamicAccessControlList)){ + throw new RuntimeException("ACL doesn't support this opperation"); + } PermissionSet turbinePS = new PermissionSet(); - org.apache.fulcrum.security.util.PermissionSet fulcrumPS = acl.getPermissions(); + org.apache.fulcrum.security.util.PermissionSet fulcrumPS = ((DynamicAccessControlList)acl).getPermissions(); for (Iterator i = fulcrumPS.iterator(); i.hasNext();) { org.apache.fulcrum.security.entity.Permission fulcrumPermission = @@ -166,11 +170,18 @@ { throw new RuntimeException("Unsupported operation"); } - /* (non-Javadoc) + /* For a DynamicACL, checks the role. But, for a BasicACL, it maps + * roles onto BasicGroup's. * @see org.apache.turbine.util.security.AccessControlList#hasRole(java.lang.String) */ - public boolean hasRole(String arg0) + public boolean hasRole(String roleName) { + if (acl instanceof DynamicAccessControlList){ + return ((DynamicAccessControlList)acl).hasRole(roleName); + } + else if (acl instanceof BasicAccessControlList){ + return ((BasicAccessControlList)acl).hasGroup(roleName); + } throw new RuntimeException("Unsupported operation"); } /* (non-Javadoc)
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]