You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by ep...@apache.org on 2004/07/07 18:49:09 UTC
cvs commit: jakarta-turbine-fulcrum/security/api/src/java/org/apache/fulcrum/security/model/dynamic/entity DynamicPermission.java
epugh 2004/07/07 09:49:09
Modified: security/api/src/java/org/apache/fulcrum/security/model/dynamic
DynamicModelManager.java
security/api/src/java/org/apache/fulcrum/security/model/dynamic/test
AbstractDynamicModelManagerTest.java
security/api/src/java/org/apache/fulcrum/security/model/dynamic/entity
DynamicPermission.java
Added: security/api/src/java/org/apache/fulcrum/security/model/dynamic
AbstractDynamicModelManager.java
Log:
Allow dynamic permissions to know about their roles.. Allows revokeAll(permission) to be called.
Revision Changes Path
1.3 +11 -1 jakarta-turbine-fulcrum/security/api/src/java/org/apache/fulcrum/security/model/dynamic/DynamicModelManager.java
Index: DynamicModelManager.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-fulcrum/security/api/src/java/org/apache/fulcrum/security/model/dynamic/DynamicModelManager.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DynamicModelManager.java 5 Jul 2004 19:28:21 -0000 1.2
+++ DynamicModelManager.java 7 Jul 2004 16:49:09 -0000 1.3
@@ -114,4 +114,14 @@
* @throws UnknownEntityException if the account is not present.
*/
void revokeAll(User user) throws DataBackendException, UnknownEntityException;
+ /**
+ * Revoke from a permission all roles
+ *
+ * This method is used when deleting an account.
+ *
+ * @param user the User.
+ * @throws DataBackendException if there was an error accessing the data backend.
+ * @throws UnknownEntityException if the account is not present.
+ */
+ void revokeAll(Permission permission) throws DataBackendException, UnknownEntityException;
}
1.1 jakarta-turbine-fulcrum/security/api/src/java/org/apache/fulcrum/security/model/dynamic/AbstractDynamicModelManager.java
Index: AbstractDynamicModelManager.java
===================================================================
package org.apache.fulcrum.security.model.dynamic;
/*
* Copyright 2001-2004 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 org.apache.fulcrum.security.spi.AbstractManager;
/**
* Holds shared functionality between different implementations of DyanamicModelManager's.
*
* @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
* @version $Id: AbstractDynamicModelManager.java,v 1.1 2004/07/07 16:49:09 epugh Exp $
*/
public abstract class AbstractDynamicModelManager extends AbstractManager implements DynamicModelManager
{
}
1.3 +25 -0 jakarta-turbine-fulcrum/security/api/src/java/org/apache/fulcrum/security/model/dynamic/test/AbstractDynamicModelManagerTest.java
Index: AbstractDynamicModelManagerTest.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-fulcrum/security/api/src/java/org/apache/fulcrum/security/model/dynamic/test/AbstractDynamicModelManagerTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AbstractDynamicModelManagerTest.java 5 Jul 2004 19:28:23 -0000 1.2
+++ AbstractDynamicModelManagerTest.java 7 Jul 2004 16:49:09 -0000 1.3
@@ -30,9 +30,11 @@
import org.apache.fulcrum.security.entity.User;
import org.apache.fulcrum.security.model.dynamic.DynamicModelManager;
import org.apache.fulcrum.security.model.dynamic.entity.DynamicGroup;
+import org.apache.fulcrum.security.model.dynamic.entity.DynamicPermission;
import org.apache.fulcrum.security.model.dynamic.entity.DynamicRole;
import org.apache.fulcrum.security.model.dynamic.entity.DynamicUser;
import org.apache.fulcrum.security.util.PermissionSet;
+import org.apache.fulcrum.security.util.RoleSet;
import org.apache.fulcrum.security.util.UnknownEntityException;
import org.apache.fulcrum.testcontainer.BaseUnitTest;
/**
@@ -154,6 +156,29 @@
assertFalse(((DynamicGroup) group).getUsers().contains(user));
assertFalse(((DynamicGroup) group2).getUsers().contains(user));
}
+
+ public void testRevokeAllPermission() throws Exception
+ {
+ Role role =
+ securityService.getRoleManager().getRoleInstance();
+ Role role2 =
+ securityService.getRoleManager().getRoleInstance();
+ role.setName("SEND_SPAM");
+ role2.setName("ANSWER_EMAIL");
+ securityService.getRoleManager().addRole(role);
+ securityService.getRoleManager().addRole(role2);
+ Permission permission = permissionManager.getPermissionInstance("HELPER");
+ permissionManager.addPermission(permission);
+ modelManager.grant(role, permission);
+ modelManager.grant(role2, permission);
+ permission = permissionManager.getPermissionById(permission.getId());
+ RoleSet roles = ((DynamicPermission) permission).getRoles();
+ assertEquals(2, roles.size());
+ modelManager.revokeAll(permission);
+ permission = permissionManager.getPermissionById(permission.getId());
+ roles = ((DynamicPermission) permission).getRoles();
+ assertEquals(0, roles.size());
+ }
public void testGrantUserGroup() throws Exception
{
Group group = securityService.getGroupManager().getGroupInstance();
1.3 +62 -1 jakarta-turbine-fulcrum/security/api/src/java/org/apache/fulcrum/security/model/dynamic/entity/DynamicPermission.java
Index: DynamicPermission.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-fulcrum/security/api/src/java/org/apache/fulcrum/security/model/dynamic/entity/DynamicPermission.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DynamicPermission.java 5 Jul 2004 19:28:21 -0000 1.2
+++ DynamicPermission.java 7 Jul 2004 16:49:09 -0000 1.3
@@ -15,8 +15,12 @@
* limitations under the License.
*/
+import java.util.Set;
+
import org.apache.fulcrum.security.entity.Permission;
+import org.apache.fulcrum.security.entity.Role;
import org.apache.fulcrum.security.entity.impl.SecurityEntityImpl;
+import org.apache.fulcrum.security.util.RoleSet;
/**
* Represents the "simple" model where permissions are related to roles,
@@ -28,5 +32,62 @@
*/
public class DynamicPermission extends SecurityEntityImpl implements Permission
{
+
+ private Set roleSet = new RoleSet();
+
+
+ /**
+ * @return
+ */
+ public RoleSet getRoles() {
+ if (roleSet instanceof RoleSet)
+ return (RoleSet) roleSet;
+ else {
+ roleSet = new RoleSet(roleSet);
+ return (RoleSet) roleSet;
+ }
+ }
+
+ /**
+ * @param roleSet
+ */
+ public void setRoles(RoleSet roleSet) {
+ if (roleSet != null)
+ this.roleSet = roleSet;
+ else
+ this.roleSet = new RoleSet();
+ }
+
+ /**
+ * Add a role to the RoleSet
+ * @param role the role to add
+ */
+ public void addRole(Role role) {
+ getRoles().add(role);
+ }
+
+ /**
+ * Remove a role from the RoleSet
+ * @param role the role to remove
+ */
+ public void removeRole(Role role) {
+ getRoles().remove(role);
+ }
+
+ /**
+ *
+ * @param roles
+ */
+ public void setRolesAsSet(Set roles) {
+ this.roleSet = roles;
+ }
+
+ /**
+ *
+ * @return
+ */
+ public Set getRolesAsSet() {
+ return roleSet;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org