You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2017/12/22 16:33:20 UTC

svn commit: r1819059 - in /turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine: AbstractTurbineModelManager.java TurbineModelManager.java

Author: gk
Date: Fri Dec 22 16:33:20 2017
New Revision: 1819059

URL: http://svn.apache.org/viewvc?rev=1819059&view=rev
Log:
- add low level option cascadeDelete for method role revokeAll

Modified:
    turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/AbstractTurbineModelManager.java
    turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineModelManager.java

Modified: turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/AbstractTurbineModelManager.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/AbstractTurbineModelManager.java?rev=1819059&r1=1819058&r2=1819059&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/AbstractTurbineModelManager.java (original)
+++ turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/AbstractTurbineModelManager.java Fri Dec 22 16:33:20 2017
@@ -52,6 +52,8 @@ public abstract class AbstractTurbineMod
     private static final long serialVersionUID = 1L;
     
     private String globalGroupName;
+    
+    //private boolean cascadeDelete;
 	// ---------------- Avalon Lifecycle Methods ---------------------
     /**
      * Avalon component lifecycle method
@@ -62,6 +64,7 @@ public abstract class AbstractTurbineMod
     	globalGroupName = conf.getAttribute(
     			TurbineModelManager.GLOBAL_GROUP_ATTR_NAME,
     			TurbineModelManager.GLOBAL_GROUP_NAME);
+    	//cascadeDelete = conf.getAttributeAsBoolean( TurbineModelManager.CASCADE_DELETE_ATTR_NAME, false );
     }
     
     /**
@@ -109,6 +112,27 @@ public abstract class AbstractTurbineMod
     @Override
 	public synchronized void revokeAll(Role role) throws DataBackendException, UnknownEntityException
     {
+        revokeAll( role, false );
+    }
+    
+    /**
+     * Revokes by default all permissions from a Role and if flag is set
+     * all groups and users for this role
+     * 
+     * This method is used when deleting a Role.
+     * 
+     * @param role
+     *            the Role
+     * @param cascadeDelete
+     *             if <code>true </code> removes all groups and user for this role.
+     * @throws DataBackendException
+     *             if there was an error accessing the data backend.
+     * @throws UnknownEntityException
+     *             if the Role is not present.
+     */
+    @Override
+    public synchronized void revokeAll(Role role, boolean cascadeDelete) throws DataBackendException, UnknownEntityException
+    {
         boolean roleExists = false;
         roleExists = getRoleManager().checkExists(role);
         if (roleExists)
@@ -119,6 +143,14 @@ public abstract class AbstractTurbineMod
             {
                 revoke(role, (Permission) permission);
             }
+            if (cascadeDelete) {
+                Object userGroupRoles[] = ((TurbineRole) role).getUserGroupRoleSet().toArray();
+                for (Object userGroupRole : userGroupRoles)
+                {
+                    TurbineUserGroupRole ugr = (TurbineUserGroupRole) userGroupRole;
+                    revoke(ugr.getUser(), ugr.getGroup(), role);
+                }
+            }
         }
         else
         {

Modified: turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineModelManager.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineModelManager.java?rev=1819059&r1=1819058&r2=1819059&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineModelManager.java (original)
+++ turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineModelManager.java Fri Dec 22 16:33:20 2017
@@ -161,4 +161,22 @@ public interface TurbineModelManager ext
      *             if user account, group or role is not present.
      */
     void revoke(User user, Group group, Role role) throws DataBackendException, UnknownEntityException;
+
+    /**
+     * Revokes by default all permissions from a Role and if flag is set
+     * all groups and users for this role
+     * 
+     * This method is used when deleting a Role.
+     * 
+     * @param role
+     *            the Role
+     * @param cascadeDelete
+     *             if <code>true </code> removes all groups and user for this role.
+     * @throws DataBackendException
+     *             if there was an error accessing the data backend.
+     * @throws UnknownEntityException
+     *             if the Role is not present.
+     */
+    void revokeAll( Role role, boolean cascadeDelete )
+        throws DataBackendException, UnknownEntityException;
 }