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