You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ca...@apache.org on 2006/09/10 21:11:38 UTC
svn commit: r441989 - in /maven/shared/trunk/maven-user/maven-user-acegi/src:
main/java/org/apache/maven/user/acegi/
main/java/org/apache/maven/user/acegi/acl/basic/
test/java/org/apache/maven/user/acegi/
test/java/org/apache/maven/user/acegi/acl/basic/
Author: carlos
Date: Sun Sep 10 12:11:37 2006
New Revision: 441989
URL: http://svn.apache.org/viewvc?view=rev&rev=441989
Log:
Added ExtendedSimpleAclEntry to allow more combinations of permissions
Added:
maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntry.java (with props)
maven/shared/trunk/maven-user/maven-user-acegi/src/test/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntryTest.java (with props)
Modified:
maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/AclManager.java
maven/shared/trunk/maven-user/maven-user-acegi/src/test/java/org/apache/maven/user/acegi/AcegiUserManagerTest.java
Modified: maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/AclManager.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/AclManager.java?view=diff&rev=441989&r1=441988&r2=441989
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/AclManager.java (original)
+++ maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/AclManager.java Sun Sep 10 12:11:37 2006
@@ -25,7 +25,7 @@
import org.acegisecurity.acl.basic.BasicAclEntry;
import org.acegisecurity.acl.basic.BasicAclExtendedDao;
import org.acegisecurity.acl.basic.NamedEntityObjectIdentity;
-import org.acegisecurity.acl.basic.SimpleAclEntry;
+import org.apache.maven.user.acegi.acl.basic.ExtendedSimpleAclEntry;
import org.apache.maven.user.model.InstancePermissions;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
@@ -111,7 +111,7 @@
+ " and " + acl );
}
- aclsByUserName.put( recipient, p );
+ aclsByUserName.put( recipient, acl );
}
/* add permissions to each user, and then return a List with permissions */
@@ -149,13 +149,13 @@
if ( acl == null )
{
NamedEntityObjectIdentity objectIdentity = createObjectIdentity( clazz, id );
- acl = new SimpleAclEntry();
+ acl = new ExtendedSimpleAclEntry();
acl.setAclObjectIdentity( objectIdentity );
//acl.setAclObjectParentIdentity( parentAclId );
permissionToAcl( p, acl );
/* create the ACL only if it has any permission */
- if ( acl.getMask() != SimpleAclEntry.NOTHING )
+ if ( acl.getMask() != ExtendedSimpleAclEntry.NOTHING )
{
getAclDao().create( acl );
}
@@ -165,7 +165,7 @@
permissionToAcl( p, acl );
/* delete the ACL if it has no permissions */
- if ( acl.getMask() != SimpleAclEntry.NOTHING )
+ if ( acl.getMask() != ExtendedSimpleAclEntry.NOTHING )
{
getAclDao().changeMask( acl.getAclObjectIdentity(), userName, new Integer( acl.getMask() ) );
}
@@ -179,35 +179,35 @@
private void permissionToAcl( InstancePermissions p, BasicAclEntry basicAcl )
{
- if ( !( basicAcl instanceof SimpleAclEntry ) )
+ if ( !( basicAcl instanceof ExtendedSimpleAclEntry ) )
{
- throw new IllegalArgumentException( "Can't create ACLs other than " + SimpleAclEntry.class );
+ throw new IllegalArgumentException( "Can't create ACLs other than " + ExtendedSimpleAclEntry.class );
}
- SimpleAclEntry acl = (SimpleAclEntry) basicAcl;
+ ExtendedSimpleAclEntry acl = (ExtendedSimpleAclEntry) basicAcl;
acl.setRecipient( p.getUser().getUsername() );
- acl.setMask( SimpleAclEntry.NOTHING );
+ acl.setMask( ExtendedSimpleAclEntry.NOTHING );
if ( p.isExecute() )
{
- acl.addPermission( SimpleAclEntry.CREATE );
+ acl.addPermission( ExtendedSimpleAclEntry.CREATE );
}
if ( p.isDelete() )
{
- acl.addPermission( SimpleAclEntry.DELETE );
+ acl.addPermission( ExtendedSimpleAclEntry.DELETE );
}
if ( p.isRead() )
{
- acl.addPermission( SimpleAclEntry.READ );
+ acl.addPermission( ExtendedSimpleAclEntry.READ );
}
if ( p.isWrite() )
{
- acl.addPermission( SimpleAclEntry.WRITE );
+ acl.addPermission( ExtendedSimpleAclEntry.WRITE );
}
if ( p.isAdminister() )
{
- acl.addPermission( SimpleAclEntry.ADMINISTRATION );
+ acl.addPermission( ExtendedSimpleAclEntry.ADMINISTRATION );
}
}
@@ -219,23 +219,23 @@
*/
private void aclToPermission( BasicAclEntry acl, InstancePermissions p )
{
- if ( acl.isPermitted( SimpleAclEntry.CREATE ) )
+ if ( acl.isPermitted( ExtendedSimpleAclEntry.CREATE ) )
{
p.setExecute( true );
}
- if ( acl.isPermitted( SimpleAclEntry.DELETE ) )
+ if ( acl.isPermitted( ExtendedSimpleAclEntry.DELETE ) )
{
p.setDelete( true );
}
- if ( acl.isPermitted( SimpleAclEntry.READ ) )
+ if ( acl.isPermitted( ExtendedSimpleAclEntry.READ ) )
{
p.setRead( true );
}
- if ( acl.isPermitted( SimpleAclEntry.WRITE ) )
+ if ( acl.isPermitted( ExtendedSimpleAclEntry.WRITE ) )
{
p.setWrite( true );
}
- if ( acl.isPermitted( SimpleAclEntry.ADMINISTRATION ) )
+ if ( acl.isPermitted( ExtendedSimpleAclEntry.ADMINISTRATION ) )
{
p.setAdminister( true );
}
Added: maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntry.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntry.java?view=auto&rev=441989
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntry.java (added)
+++ maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntry.java Sun Sep 10 12:11:37 2006
@@ -0,0 +1,77 @@
+package org.apache.maven.user.acegi.acl.basic;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.Iterator;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.acegisecurity.acl.basic.SimpleAclEntry;
+
+/**
+ * Extends {@link SimpleAclEntry} to allow more combinations of permissions.
+ *
+ * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
+ * @version $Id$
+ */
+public class ExtendedSimpleAclEntry
+ extends SimpleAclEntry
+{
+
+ public static final int EXECUTE = CREATE;
+
+ public static final int READ_WRITE_EXECUTE_DELETE = READ_WRITE_CREATE_DELETE;
+
+ public static final int READ_WRITE_EXECUTE = READ_WRITE_CREATE;
+
+ public static final int READ_EXECUTE = READ | EXECUTE;
+
+ public static final int WRITE_EXECUTE = WRITE | EXECUTE;
+
+ private static final int[] BASIC_PERMISSIONS = { NOTHING, ADMINISTRATION, READ, WRITE, EXECUTE, DELETE };
+
+ private static final int[] VALID_PERMISSIONS;
+
+ static
+ {
+ Set l = new TreeSet();
+ for ( int i = 0; i < BASIC_PERMISSIONS.length; i++ )
+ {
+ for ( int j = i; j < BASIC_PERMISSIONS.length; j++ )
+ {
+ l.add( new Integer( BASIC_PERMISSIONS[i] | BASIC_PERMISSIONS[j] ) );
+ }
+ }
+
+ int k = 0;
+ VALID_PERMISSIONS = new int[l.size()];
+ Iterator it = l.iterator();
+ while ( it.hasNext() )
+ {
+ Integer i = (Integer) it.next();
+ VALID_PERMISSIONS[k++] = i.intValue();
+ }
+ }
+
+ /**
+ * @return a copy of the permissions array, changes to the values won't affect this class.
+ */
+ public int[] getValidPermissions()
+ {
+ return (int[]) VALID_PERMISSIONS.clone();
+ }
+}
Propchange: maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntry.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntry.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/shared/trunk/maven-user/maven-user-acegi/src/test/java/org/apache/maven/user/acegi/AcegiUserManagerTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-acegi/src/test/java/org/apache/maven/user/acegi/AcegiUserManagerTest.java?view=diff&rev=441989&r1=441988&r2=441989
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-acegi/src/test/java/org/apache/maven/user/acegi/AcegiUserManagerTest.java (original)
+++ maven/shared/trunk/maven-user/maven-user-acegi/src/test/java/org/apache/maven/user/acegi/AcegiUserManagerTest.java Sun Sep 10 12:11:37 2006
@@ -21,7 +21,7 @@
import org.acegisecurity.acl.basic.BasicAclEntry;
import org.acegisecurity.acl.basic.BasicAclExtendedDao;
-import org.acegisecurity.acl.basic.SimpleAclEntry;
+import org.apache.maven.user.acegi.acl.basic.ExtendedSimpleAclEntry;
import org.apache.maven.user.model.InstancePermissions;
import org.apache.maven.user.model.User;
import org.apache.maven.user.model.UserManager;
@@ -70,7 +70,7 @@
delegate.expects( once() ).method( "getUsersInstancePermissions" ).will( returnValue( users ) );
BasicAclEntry[] acls = new BasicAclEntry[1];
- acls[0] = new SimpleAclEntry();
+ acls[0] = new ExtendedSimpleAclEntry();
dao.expects( once() ).method( "getAcls" ).will( returnValue( acls ) );
List usersInstancePermissions = manager.getUsersInstancePermissions( User.class, new Integer( 1 ) );
@@ -95,7 +95,7 @@
users.add( p );
BasicAclEntry[] acls = new BasicAclEntry[1];
- BasicAclEntry acl = new SimpleAclEntry();
+ BasicAclEntry acl = new ExtendedSimpleAclEntry();
acl.setRecipient( user.getUsername() );
acl.setAclObjectIdentity( aclManager.createObjectIdentity( User.class, new Integer( 1 ) ) );
acls[0] = acl;
@@ -112,8 +112,8 @@
/* read permission */
p.setRead( true );
- dao.expects( once() ).method( "changeMask" )
- .with( ANYTHING, eq( user.getUsername() ), eq( SimpleAclEntry.READ ) );
+ dao.expects( once() ).method( "changeMask" ).with( ANYTHING, eq( user.getUsername() ),
+ eq( ExtendedSimpleAclEntry.READ ) );
manager.setUsersInstancePermissions( User.class, new Integer( 1 ), users );
dao.verify();
@@ -130,8 +130,8 @@
/* read permission */
p.setRead( true );
- acl.setMask( SimpleAclEntry.READ );
- dao.expects( once() ).method( "create" ).with( hasProperty( "mask", eq( SimpleAclEntry.READ ) ) );
+ acl.setMask( ExtendedSimpleAclEntry.READ );
+ dao.expects( once() ).method( "create" ).with( hasProperty( "mask", eq( ExtendedSimpleAclEntry.READ ) ) );
manager.setUsersInstancePermissions( User.class, new Integer( 1 ), users );
dao.verify();
Added: maven/shared/trunk/maven-user/maven-user-acegi/src/test/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntryTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-acegi/src/test/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntryTest.java?view=auto&rev=441989
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-acegi/src/test/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntryTest.java (added)
+++ maven/shared/trunk/maven-user/maven-user-acegi/src/test/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntryTest.java Sun Sep 10 12:11:37 2006
@@ -0,0 +1,46 @@
+package org.apache.maven.user.acegi.acl.basic;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import junit.framework.TestCase;
+
+/**
+ * Test for {@link ExtendedSimpleAclEntry}.
+ *
+ * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
+ * @version $Id$
+ */
+public class ExtendedSimpleAclEntryTest
+ extends TestCase
+{
+
+ private ExtendedSimpleAclEntry entry;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ entry = new ExtendedSimpleAclEntry();
+ }
+
+ public void testGetValidPermissions()
+ {
+ int[] validPermissions = entry.getValidPermissions();
+ assertEquals( 16, validPermissions.length );
+ }
+
+}
Propchange: maven/shared/trunk/maven-user/maven-user-acegi/src/test/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntryTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-user/maven-user-acegi/src/test/java/org/apache/maven/user/acegi/acl/basic/ExtendedSimpleAclEntryTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"