Author: tv
Date: Tue Sep 17 17:59:19 2013
New Revision: 1524146

URL: http://svn.apache.org/r1524146
Log:
Ensure that the global group exists when creating an ACL

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

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineACLFactory.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineACLFactory.java?rev=1524146&r1=1524145&r2=1524146&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineACLFactory.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineACLFactory.java
 Tue Sep 17 17:59:19 2013
@@ -22,12 +22,14 @@ import java.util.Set;
 
 import org.apache.fulcrum.security.GroupManager;
 import org.apache.fulcrum.security.acl.AccessControlList;
+import org.apache.fulcrum.security.entity.Group;
 import org.apache.fulcrum.security.entity.User;
 import org.apache.fulcrum.security.model.ACLFactory;
 import org.apache.fulcrum.security.model.turbine.entity.TurbineUser;
 import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
 import org.apache.fulcrum.security.spi.AbstractManager;
 import org.apache.fulcrum.security.util.DataBackendException;
+import org.apache.fulcrum.security.util.EntityExistsException;
 import org.apache.fulcrum.security.util.UnknownEntityException;
 
 /**
@@ -79,7 +81,29 @@ public class TurbineACLFactory extends A
        try
        {
                        groupManager = getGroupManager();
-               }
+
+               // make sure the global group exists
+               if (groupManager != null)
+               {
+                   Group g = null;
+                   try
+                   {
+                       g = 
groupManager.getGroupByName(TurbineModelManager.GLOBAL_GROUP_NAME);
+                   }
+                   catch (UnknownEntityException uee)
+                   {
+                       g = 
groupManager.getGroupInstance(TurbineModelManager.GLOBAL_GROUP_NAME);
+                       try
+                       {
+                           groupManager.addGroup(g);
+                       }
+                       catch (EntityExistsException eee)
+                       {
+                           throw new DataBackendException(eee.getMessage(), 
eee);
+                       }
+                   }
+               }
+       }
        catch (DataBackendException e)
        {
                // ignore
@@ -88,7 +112,9 @@ public class TurbineACLFactory extends A
        TurbineAccessControlList accessControlList;
         try
         {
-            accessControlList = new 
TurbineAccessControlListImpl(turbineUserGroupRoleSet, groupManager);
+            accessControlList =
+                new TurbineAccessControlListImpl(turbineUserGroupRoleSet,
+                        groupManager);
         }
         catch (Exception e)
         {


Reply via email to