You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ca...@apache.org on 2006/09/06 20:53:56 UTC

svn commit: r440829 - in /maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi: AcegiContinuum.java AclEventHandler.java

Author: carlos
Date: Wed Sep  6 11:53:55 2006
New Revision: 440829

URL: http://svn.apache.org/viewvc?view=rev&rev=440829
Log:
Add ACL deletion code

Modified:
    maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/AcegiContinuum.java
    maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/AclEventHandler.java

Modified: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/AcegiContinuum.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/AcegiContinuum.java?view=diff&rev=440829&r1=440828&r2=440829
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/AcegiContinuum.java (original)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/AcegiContinuum.java Wed Sep  6 11:53:55 2006
@@ -1059,6 +1059,7 @@
         throws ContinuumException
     {
         getContinuum().removeProjectGroup( projectGroupId );
+        getAclEventHandler().afterDeleteProjectGroup( projectGroupId );
     }
 
 }

Modified: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/AclEventHandler.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/AclEventHandler.java?view=diff&rev=440829&r1=440828&r2=440829
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/AclEventHandler.java (original)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/AclEventHandler.java Wed Sep  6 11:53:55 2006
@@ -52,6 +52,11 @@
         return aclDao;
     }
 
+    /**
+     * Create ACLs for new {@link ProjectGroup} and {@link Project}s
+     * 
+     * @param result
+     */
     public void afterAddProject( ContinuumProjectBuildingResult result )
     {
         List projectGroups = result.getProjectGroups();
@@ -70,6 +75,18 @@
     }
 
     /**
+     * Delete {@link ProjectGroup} ACLs
+     * 
+     * @TODO should this cascade delete all the children ACLs ?
+     * 
+     * @param projectGroupId
+     */
+    public void afterDeleteProjectGroup( int projectGroupId )
+    {
+        getAclDao().delete( createProjectGroupObjectIdentity( projectGroupId ) );
+    }
+
+    /**
      * Call this method when new {@link ProjectGroup}s are created.
      * 
      * @param projectGroups
@@ -93,8 +110,7 @@
     {
         User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
         SimpleAclEntry aclEntry = new SimpleAclEntry();
-        aclEntry.setAclObjectIdentity( new NamedEntityObjectIdentity( projectGroup.getClass().getName(), Integer
-            .toString( projectGroup.getId() ) ) );
+        aclEntry.setAclObjectIdentity( createProjectGroupObjectIdentity( projectGroup.getId() ) );
         aclEntry.setRecipient( user.getUsername() );
         aclEntry.setAclObjectParentIdentity( AclInitializer.PARENT_PROJECT_GROUP_ACL_ID );
         aclEntry.addPermission( SimpleAclEntry.ADMINISTRATION );
@@ -124,13 +140,25 @@
      */
     private void createNewProjectACL( Project project, ProjectGroup projectGroup )
     {
-        NamedEntityObjectIdentity projectGroupIdentity = new NamedEntityObjectIdentity( ProjectGroup.class.getName(),
-                                                                                        Integer.toString( projectGroup
-                                                                                            .getId() ) );
+        NamedEntityObjectIdentity projectGroupIdentity = createProjectGroupObjectIdentity( projectGroup.getId() );
         SimpleAclEntry aclEntry = new SimpleAclEntry();
-        aclEntry.setAclObjectIdentity( new NamedEntityObjectIdentity( Project.class.getName(), Integer
-            .toString( project.getId() ) ) );
+        aclEntry.setAclObjectIdentity( createProjectObjectIdentity( project.getId() ) );
         aclEntry.setAclObjectParentIdentity( projectGroupIdentity );
         getAclDao().create( aclEntry );
+    }
+
+    private NamedEntityObjectIdentity createProjectObjectIdentity( int projectId )
+    {
+        return createObjectIdentity( Project.class, projectId );
+    }
+
+    private NamedEntityObjectIdentity createProjectGroupObjectIdentity( int projectGroupId )
+    {
+        return createObjectIdentity( ProjectGroup.class, projectGroupId );
+    }
+
+    private NamedEntityObjectIdentity createObjectIdentity( Class clazz, int id )
+    {
+        return new NamedEntityObjectIdentity( clazz.getName(), Integer.toString( id ) );
     }
 }