Return-Path: Delivered-To: apmail-maven-continuum-commits-archive@www.apache.org Received: (qmail 31818 invoked from network); 6 Sep 2006 18:54:20 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 6 Sep 2006 18:54:20 -0000 Received: (qmail 84088 invoked by uid 500); 6 Sep 2006 18:54:18 -0000 Delivered-To: apmail-maven-continuum-commits-archive@maven.apache.org Received: (qmail 84066 invoked by uid 500); 6 Sep 2006 18:54:18 -0000 Mailing-List: contact continuum-commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: continuum-dev@maven.apache.org Delivered-To: mailing list continuum-commits@maven.apache.org Received: (qmail 84041 invoked by uid 99); 6 Sep 2006 18:54:18 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Sep 2006 11:54:18 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Sep 2006 11:54:16 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 9D86B1A981A; Wed, 6 Sep 2006 11:53:56 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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 Date: Wed, 06 Sep 2006 18:53:56 -0000 To: continuum-commits@maven.apache.org From: carlos@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20060906185356.9D86B1A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N 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 ) ); } }