epugh       2004/07/07 11:18:09

  Modified:    security/api/src/java/org/apache/fulcrum/security/model/dynamic
                        AbstractDynamicModelManager.java
  Log:
  move methods up into this class
  
  Revision  Changes    Path
  1.2       +135 -5    
jakarta-turbine-fulcrum/security/api/src/java/org/apache/fulcrum/security/model/dynamic/AbstractDynamicModelManager.java
  
  Index: AbstractDynamicModelManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-fulcrum/security/api/src/java/org/apache/fulcrum/security/model/dynamic/AbstractDynamicModelManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractDynamicModelManager.java  7 Jul 2004 16:49:09 -0000       1.1
  +++ AbstractDynamicModelManager.java  7 Jul 2004 18:18:09 -0000       1.2
  @@ -1,4 +1,5 @@
   package org.apache.fulcrum.security.model.dynamic;
  +
   /*
    *  Copyright 2001-2004 The Apache Software Foundation
    *
  @@ -15,14 +16,143 @@
    *  limitations under the License.
    */
   
  +import org.apache.fulcrum.security.entity.Group;
  +import org.apache.fulcrum.security.entity.Permission;
  +import org.apache.fulcrum.security.entity.Role;
  +import org.apache.fulcrum.security.entity.User;
  +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.spi.AbstractManager;
  +import org.apache.fulcrum.security.util.DataBackendException;
  +import org.apache.fulcrum.security.util.UnknownEntityException;
   
   /**
    * Holds shared functionality between different implementations of 
DyanamicModelManager's.
    * 
  - * @author <a href="mailto:[EMAIL PROTECTED]">Eric Pugh</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Eric Pugh </a>
    * @version $Id$
    */
  -public abstract class AbstractDynamicModelManager extends AbstractManager 
implements DynamicModelManager
  -{
  - }
  +public abstract class AbstractDynamicModelManager extends AbstractManager 
implements DynamicModelManager {
  +    /**
  +     * Revokes all roles from a permission
  +     * 
  +     * This method is used when deleting a permission.
  +     * 
  +     * @param permission
  +     *            the permission.
  +     * @throws DataBackendException
  +     *             if there was an error accessing the data backend.
  +     * @throws UnknownEntityException
  +     *             if the account is not present.
  +     */
  +    public synchronized void revokeAll(Permission permission) throws 
DataBackendException, UnknownEntityException {
  +        boolean permissionExists = false;
  +        permissionExists = getPermissionManager().checkExists(permission);
  +        if (permissionExists) {
  +            Object roles[] = ((DynamicPermission) permission).getRoles().toArray();
  +            for (int i = 0; i < roles.length; i++) {
  +                revoke((Role)roles[i], permission);
  +            }
  +
  +            return;
  +        }
  +        else {
  +            throw new UnknownEntityException("Unknown permission '" + 
permission.getName() + "'");
  +        }
  +    }
  +
  +    /**
  +     * Revokes all users and roles from a group
  +     * 
  +     * This method is used when deleting a group.
  +     * 
  +     * @param group
  +     *            the Group.
  +     * @throws DataBackendException
  +     *             if there was an error accessing the data backend.
  +     * @throws UnknownEntityException
  +     *             if the account is not present.
  +     */
  +    public synchronized void revokeAll(Group group) throws DataBackendException, 
UnknownEntityException {
  +        boolean groupExists = false;
  +        groupExists = getGroupManager().checkExists(group);
  +        if (groupExists) {
  +            Object users[] = ((DynamicGroup) group).getUsers().toArray();
  +            for (int i = 0; i < users.length; i++) {
  +                revoke((User)users[i], group);
  +            }
  +            
  +            Object roles[] = ((DynamicGroup) group).getRoles().toArray();
  +            for (int i = 0; i < roles.length; i++) {
  +                revoke(group, (Role)roles[i]);
  +            }           
  +
  +            return;
  +        }
  +        else {
  +            throw new UnknownEntityException("Unknown group '" + group.getName() + 
"'");
  +        }
  +    }
  +
  +    /**
  +     * Revokes all groups from a user
  +     * 
  +     * 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.
  +     */
  +    public synchronized void revokeAll(User user) throws DataBackendException, 
UnknownEntityException {
  +        boolean userExists = false;
  +        userExists = getUserManager().checkExists(user);
  +        if (userExists) {
  +            Object groups[] = ((DynamicUser) user).getGroups().toArray();
  +            for (int i = 0; i < groups.length; i++) {            
  +                revoke(user, (Group)groups[i]);
  +            }
  +
  +            return;
  +        }
  +        else {
  +            throw new UnknownEntityException("Unknown user '" + user.getName() + 
"'");
  +        }
  +    }
  +
  +    /**
  +     * Revokes all permissions and groups from a Role.
  +     * 
  +     * This method is used when deleting a Role.
  +     * 
  +     * @param role
  +     *            the Role
  +     * @throws DataBackendException
  +     *             if there was an error accessing the data backend.
  +     * @throws UnknownEntityException
  +     *             if the Role is not present.
  +     */
  +    public synchronized void revokeAll(Role role) throws DataBackendException, 
UnknownEntityException {
  +        boolean roleExists = false;
  +        roleExists = getRoleManager().checkExists(role);
  +        if (roleExists) {            
  +            Object groups[] = ((DynamicRole) role).getGroups().toArray();
  +            for (int i = 0; i < groups.length; i++) {            
  +                revoke((Group)groups[i], role);
  +            }
  +
  +            Object permissions[] = ((DynamicRole) role).getPermissions().toArray();
  +            for (int i = 0; i < permissions.length; i++) {            
  +                revoke(role, (Permission)permissions[i]);
  +            }
  +        }
  +        else {
  +            throw new UnknownEntityException("Unknown role '" + role.getName() + 
"'");
  +        }
  +
  +    }
  +}
  \ No newline at end of file
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to