The following comment has been added to this issue:

     Author: Bob Fleischman
    Created: Tue, 15 Jun 2004 6:43 PM
       Body:
I think I've got the new first part worked out. There are 2 parts. A new entry in 
JetspeedResources.properties called services.Profiler.newgroup.template=Jetspeed; and 
a modification to the TurbineResource

Index: WEB-INF/conf/JetspeedResources.properties
===================================================================
RCS file: 
/home/cvspublic/jakarta-jetspeed/webapp/WEB-INF/conf/JetspeedResources.properties,v
retrieving revision 1.121
diff -u -r1.121 JetspeedResources.properties
--- WEB-INF/conf/JetspeedResources.properties   1 Jun 2004 22:04:24 -0000       1.121
+++ WEB-INF/conf/JetspeedResources.properties   16 Jun 2004 01:27:04 -0000
@@ -453,6 +453,9 @@
 # Setting this account to nothing configures role-based psml as the default method 
for new users
 services.Profiler.newuser.template=turbine
 
+# When a new group is created, this groups's psml is cloned to the new group psml 
+services.Profiler.newgroup.template=Jetspeed
+
 # Media types template to create for user. (comma separated)
 services.Profiler.newuser.media_types=html,wml
 
Then we need to modify JetspeedProfilerService.java as follows:
Index: JetspeedProfilerService.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/services/profiler/JetspeedProfilerService.java,v
retrieving revision 1.56
diff -u -r1.56 JetspeedProfilerService.java
--- JetspeedProfilerService.java        23 Feb 2004 03:35:24 -0000      1.56
+++ JetspeedProfilerService.java        16 Jun 2004 01:39:01 -0000
@@ -104,6 +104,7 @@
     private final static String CONFIG_SECURITY         = "security";
     private final static String CONFIG_ROLE_FALLBACK    = "rolefallback";
     private final static String CONFIG_NEWUSER_TEMPLATE  = "newuser.template";
+       private final static String CONFIG_NEWGROUP_TEMPLATE  = "newgroup.template";
     private final static String CONFIG_NEWUSER_MEDIA     = "newuser.media_types";
     private final static String CONFIG_FALLBACK_LANGUAGE = "fallback.language";
     private final static String CONFIG_FALLBACK_COUNTRY = "fallback.country";
@@ -118,8 +119,8 @@
     private final static boolean DEFAULT_CONFIG_SECURITY = false;
     private final static boolean DEFAULT_CONFIG_ROLE_FALLBACK = true;
     private final static String DEFAULT_CONFIG_NEWUSER_TEMPLATE = null;
-    private final static String [] DEFAULT_CONFIG_NEWUSER_MEDIA =
-    { "html", "wml" };
+       private final static String DEFAULT_CONFIG_NEWGROUP_TEMPLATE = "Jetspeed";
+    private final static String [] DEFAULT_CONFIG_NEWUSER_MEDIA = { "html", "wml" };
     private final static String DEFAULT_CONFIG_ROLE_MERGE_CONTROL = "TabControl";
     private final static String DEFAULT_CONFIG_ROLE_MERGE_CONTROLLER = 
"TabController";
 
@@ -142,6 +143,8 @@
 
     // MODIFIED: A. Kempf
     String newUserTemplate = DEFAULT_CONFIG_NEWUSER_TEMPLATE;
+    // added by Bob Fleischman - June 2004
+       String newGroupTemplate = DEFAULT_CONFIG_NEWGROUP_TEMPLATE;
 
     boolean useSecurity = false;   // use security features
     boolean useRoleFallback = true;
@@ -165,6 +168,8 @@
     {
         Profile current = null;
         CapabilityMap map;
+        
+        String newTemplate;
 
         if (data == null)
         {
@@ -180,12 +185,24 @@
         if (newUserTemplate == null)
             return current;
 
+        // If we see a group use it, else fall back to the prrior method
+        // Remember that Roles can also have profiles so it is not enough to just 
check for profile.getGroup() == null
+        // newTemplate is then passed into the createProfile call a few lines later   
         
+        if (profile.getGroup() != null) 
+        {
+               newTemplate = newGroupTemplate;     
+        }
+        else
+        {
+               newTemplate = newUserTemplate;
+        }
+
         if (mediaTypes != null)
         {
             Profile dummy;
             for (int ix=0; ix < mediaTypes.length; ix++)
             {
-                dummy = createProfile(data, profile, mediaTypes[ix], newUserTemplate);
+                dummy = createProfile(data, profile, mediaTypes[ix], newTemplate);
                 if (mediaTypes[ix].equalsIgnoreCase(mediaType))
                     current = dummy;
             }
@@ -818,6 +835,8 @@
         useRoleFallback = serviceConf.getBoolean( CONFIG_ROLE_FALLBACK, 
DEFAULT_CONFIG_ROLE_FALLBACK );
 
         newUserTemplate = serviceConf.getString( CONFIG_NEWUSER_TEMPLATE, 
DEFAULT_CONFIG_NEWUSER_TEMPLATE );
+        
+               newGroupTemplate = serviceConf.getString( CONFIG_NEWGROUP_TEMPLATE, 
DEFAULT_CONFIG_NEWGROUP_TEMPLATE );
 
         useFallbackToRoot = serviceConf.getBoolean( CONFIG_FALLBACK_TO_ROOT, 
useFallbackToRoot );
 
@@ -1005,8 +1024,20 @@
       if ((contentType == null) || (contentType.length() < 2))
         contentType = "html";
 
-      if ((from == null) || (from.length() < 2))
-        from = "turbine";
+               if ((from == null) || (from.length() < 2))
+               {
+//
+// This is just for groups - Roles will continue to be treated like users
+//                     
+                 if (profile.getGroup() != null)
+                         from = DEFAULT_CONFIG_NEWGROUP_TEMPLATE;
+                         else
+                         from = DEFAULT_CONFIG_NEWUSER_TEMPLATE;
+               }
+
+// turbine was hardcoded here - RMF June 2004
+//      if ((from == null) || (from.length() < 2))
+//        from = "turbine";
 
 
         if ((null == profile.getDocument()) || 
(!profile.getMediaType().equalsIgnoreCase (contentType)))
@@ -1018,7 +1049,11 @@
             try
             {
                 ProfileLocator locator = createLocator();
-                locator.setUser( JetspeedSecurity.getUser(from) );
+                // If group is not null assume this is a Group we are requesting
+                               if (profile.getGroup() != null) 
+                                 locator.setGroup( JetspeedSecurity.getGroup(from) );
+                               else
+                  locator.setUser( JetspeedSecurity.getUser(from) );
 
                 locator.setMediaType(contentType);
                 PSMLDocument doc = fallback(locator);

Thanks for pointing me in the right direction. I hope this helps. I would perfer to 
setup a new group called 'baseGroup' but I didn't want to start working with the 
Hypersonic datafiles and the other populate statements.

---------------------------------------------------------------------
View this comment:
  http://issues.apache.org/jira/browse/JS1-480?page=comments#action_36190

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/JS1-480

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: JS1-480
    Summary: Group and Role Profile Default Template Handling
       Type: Improvement

     Status: Open
   Priority: Major

    Project: Jetspeed
 Components: 
             PSML
   Fix Fors:
             1.6-dev
   Versions:
             1.6-dev

   Assignee: David Sean Taylor
   Reporter: David Sean Taylor

    Created: Mon, 24 May 2004 9:12 AM
    Updated: Tue, 15 Jun 2004 6:43 PM

Description:
Bob Fleischman wrote:

I am familiar with services.Profiler.newuser.template for new users, but I
did not see anything similar for groups.

I would like to intercept the process and customize the Profile/PSML that is
created for each group so that I can quickly create team workspaces.

...

I noticed 2 issues that can be improved on:

1. The Turbine User (the default User template) was copied over and used as a default 
Group template.
2. The Security constraint applied (owner-only) makes this PSML unaccessible

I propose 

1. enhancing the TurbineGroupManagement : adding a default Group template
2. changing the default security constraint to admin-all / owner-only for user 
resources, and admin-all + particular role or group for new group or role resources
This will require creating a new role or group constraint on template creation



---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


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

Reply via email to