Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java,v diff -u -r1.34 -r1.35 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java 4 Oct 2008 03:37:34 -0000 1.34 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java 10 Apr 2009 13:28:14 -0000 1.35 @@ -157,6 +157,7 @@ BeanUtils.copyProperties(user, userForm); user.setLocale(locale); user.setAuthenticationMethod(authenticationMethod); + UserSaveAction.service.save(user); } else { // create user user = new User(); userForm.set("password", HashUtil.sha1((String) userForm.get("password"))); Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java,v diff -u -r1.99 -r1.100 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java 24 Mar 2009 04:18:05 -0000 1.99 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java 10 Apr 2009 13:28:10 -0000 1.100 @@ -24,6 +24,7 @@ package org.lamsfoundation.lams.usermanagement.service; import java.io.Serializable; +import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Collection; import java.util.Date; @@ -36,6 +37,7 @@ import java.util.Set; import java.util.Vector; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.lamsfoundation.lams.dao.IBaseDAO; import org.lamsfoundation.lams.learningdesign.dao.IGroupDAO; @@ -149,17 +151,42 @@ try { if (object instanceof User) { User user = (User) object; - if (user.getUserId() == null) { - baseDAO.insertOrUpdate(user); // creating a workspace needs - // a userId - object = createWorkspaceForUser(user); - } + object = saveUser(user); } baseDAO.insertOrUpdate(object); } catch (Exception e) { log.debug(e); } } + + protected User saveUser(User user) { + if (user != null) { + // LDEV-2196 ensure names saved as UTF-8 + try { + user.setFirstName(new String(user.getFirstName().getBytes(), "UTF-8")); + user.setLastName(new String(user.getLastName().getBytes(), "UTF-8")); + } catch (UnsupportedEncodingException e) { + log.error("Unsupported encoding...", e); + } + // create user + if (user.getUserId() == null) { + baseDAO.insertOrUpdate(user); // creating a workspace needs a userId + user = createWorkspaceForUser(user); + } + // LDEV-2030 update workspace name if name changed + Workspace workspace = user.getWorkspace(); + if (workspace != null && !StringUtils.equals(user.getFullName(), workspace.getName())){ + workspace.setName(user.getFullName()); + save(workspace); + WorkspaceFolder folder = workspace.getDefaultFolder(); + if (folder != null) { + folder.setName(workspace.getName()); + save(folder); + } + } + } + return user; + } public void saveAll(Collection objects) { for (Object o : objects) {