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;
}