Are you using the default graffito permission ? Are you using the admin user to create the new user folder ? Can you send me the complete stack trace ?
I'm interesting to receive the patch for this feature (even if there are some bugs). It will be easier to check your error. br, Christophe On 11/3/06, Evangelos Vlachogiannis <[EMAIL PROTECTED]> wrote:
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); - } + } + }