Hi,

I would like to create a graffito folder when a new user is created. So I have created a graffito service and call it from inside jetspeed PortalAdministrationImpl.java as you can see in attachment. Could you please tell me if I am doing something wrong as I get a graffito permission (not sufficent perm) exception?

thnx,
Vangelis
--
---------------------------------------------------------------
Evangelos Vlachogiannis
Researcher - PhD. Candidate
Contact: http://www.syros.aegean.gr/users/evlach/contactme.php
---------------------------------------------------------------
Index: PortalAdministrationImpl.java
===================================================================
--- PortalAdministrationImpl.java       (revision 344)
+++ PortalAdministrationImpl.java       (revision 345)
@@ -17,6 +17,7 @@
 
 import java.io.FileReader;
 import java.io.StringWriter;
+import java.lang.reflect.Method;
 import java.security.Principal;
 import java.security.PrivilegedAction;
 import java.util.Collection;
@@ -53,6 +54,8 @@
 import org.apache.jetspeed.security.User;
 import org.apache.jetspeed.security.UserManager;
 import org.apache.jetspeed.security.UserPrincipal;
+import org.apache.jetspeed.services.JetspeedPortletServices;
+import org.apache.jetspeed.services.PortletServices;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.VelocityEngine;
 import org.springframework.mail.MailException;
@@ -259,8 +262,7 @@
                              // deep copy from the default folder template 
tree, creating a deep-copy of the template
                              // in the new user's folder tree
                             Folder source = 
innerPageManager.getFolder(innerFolderTemplate);                            
-                            innerPageManager.deepCopyFolder(source, 
Folder.USER_FOLDER + innerUserName, innerUser);
-                             
+                            innerPageManager.deepCopyFolder(source, 
Folder.USER_FOLDER + innerUserName, innerUser);                            
                             return null;
                         }
                          catch (FolderNotFoundException e1) {
@@ -290,13 +292,49 @@
                 log.error("Registration Error: Failed to create user folders 
for " + userName + ", " + pe.toString());
                 throw pe;
             }
-                        
+              
+            try
+            {
+               User theAdminUser = userManager.getUser("admin");
+                JetspeedException pe1 = (JetspeedException) 
Subject.doAsPrivileged(theAdminUser.getSubject(), new PrivilegedAction()
+                    {
+                        public Object run() 
+                        {
+                                try
+                               {
+                                       System.out.print("login fix start");
+                                    PortletServices services = 
JetspeedPortletServices.getSingleton();
+                                    Object userFolderService = 
services.getService("UserFolderService");
+                                       String className = 
userFolderService.getClass().getName();
+                                       Class userFolderManagerClass = 
Class.forName(className);
+                                       Class[] argClasses = {String.class};
+                                       Object[] args = {innerUserName};
+                                       Method method = 
userFolderManagerClass.getMethod("initializeUser", argClasses);
+                                       method.invoke(userFolderService, args); 
                
+                                       System.out.print("login fix end");
+                               }
+                               catch(Exception e)
+                               {
+                                       //e.printStackTrace();
+                                       System.out.print("login fix failed"+ 
e.getMessage());
+                               }                            
+                                
+                                return null;
+                        }
+                    }, null); 
+            }
+            catch(Exception e)
+            {
+               
+            }
+                       
         }
         catch (Exception e) 
         {
             log.error("Registration Error: Failed to create registered user " 
+ userName + ", " + e.toString());
             throw new RegistrationException(e); 
-        }        
+        }  
+
     }
     
     

Reply via email to