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