Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java =================================================================== diff -u -r8cfa07901cb6337b5483aa035ab100a1d166d37d -rb09297590093f8cbfaf009d9117abc4f339c0865 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java (.../UserAction.java) (revision 8cfa07901cb6337b5483aa035ab100a1d166d37d) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java (.../UserAction.java) (revision b09297590093f8cbfaf009d9117abc4f339c0865) @@ -40,6 +40,7 @@ import org.apache.struts.action.DynaActionForm; import org.lamsfoundation.lams.usermanagement.Country; import org.lamsfoundation.lams.usermanagement.Language; +import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.UserOrganisation; @@ -95,6 +96,7 @@ User user = (User)service.findById(User.class,userId); DynaActionForm userForm = (DynaActionForm)form; BeanUtils.copyProperties(userForm, user); + BeanUtils.setProperty(userForm,"password2",user.getPassword()); // get system's roles List allRoles = service.findAll(Role.class); @@ -127,6 +129,15 @@ } + Organisation org = (Organisation)service.findById(Organisation.class,orgId); + Organisation pOrg = org.getParentOrganisation(); + if(pOrg!=null){ + request.setAttribute("pOrgId",pOrg.getOrganisationId()); + request.setAttribute("pOrgName",pOrg.getName()); + } + request.setAttribute("orgId",orgId); + request.setAttribute("orgName",org.getName()); + request.setAttribute("orgType",org.getOrganisationType().getOrganisationTypeId()); request.setAttribute("countries",countries); request.setAttribute("languages",languages); return mapping.findForward("user"); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java =================================================================== diff -u -r59b15c242a7c8f0b8508bf725882db9ad5d56749 -rb09297590093f8cbfaf009d9117abc4f339c0865 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java (.../UserManageAction.java) (revision 59b15c242a7c8f0b8508bf725882db9ad5d56749) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java (.../UserManageAction.java) (revision b09297590093f8cbfaf009d9117abc4f339c0865) @@ -120,12 +120,27 @@ User user = (User)users.get(i); UserManageBean userManageBean = new UserManageBean(); BeanUtils.copyProperties(userManageBean, user); - userManageBean.setRoles(service.getRolesForUserByOrganisation(user, orgId)); + List roles; + try{ + roles = service.getRolesForUserByOrganisation(user, orgId); + } catch(NullPointerException e){ + roles = new ArrayList(); + log.debug("no roles found for user: "+user); + } + userManageBean.setRoles(roles); userManageBeans.add(userManageBean); } userManageForm.setUserManageBeans(userManageBeans); request.setAttribute("UserManageForm", userManageForm); + + Organisation pOrg = organisation.getParentOrganisation(); + if(pOrg!=null){ + request.setAttribute("pOrgId",pOrg.getOrganisationId()); + request.setAttribute("pOrgName",pOrg.getName()); + } + request.setAttribute("orgType",organisation.getOrganisationType().getOrganisationTypeId()); + return mapping.findForward("userlist"); } } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgAction.java =================================================================== diff -u -r40cd00471f7910f9cc2459a03082d35b33fd8308 -rb09297590093f8cbfaf009d9117abc4f339c0865 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgAction.java (.../UserOrgAction.java) (revision 40cd00471f7910f9cc2459a03082d35b33fd8308) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgAction.java (.../UserOrgAction.java) (revision b09297590093f8cbfaf009d9117abc4f339c0865) @@ -90,6 +90,11 @@ String orgName = organisation.getName(); log.debug("orgName: "+orgName); Organisation parentOrg = organisation.getParentOrganisation(); + if(parentOrg!=null){ + request.setAttribute("pOrgId",parentOrg.getOrganisationId()); + request.setAttribute("pOrgName",parentOrg.getName()); + } + request.setAttribute("orgType",organisation.getOrganisationType().getOrganisationTypeId()); // check user permission //String username = request.getRemoteUser(); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java =================================================================== diff -u -r28fa966281305666d0d939aa53c82923eb30f50c -rb09297590093f8cbfaf009d9117abc4f339c0865 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java (.../UserSaveAction.java) (revision 28fa966281305666d0d939aa53c82923eb30f50c) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java (.../UserSaveAction.java) (revision b09297590093f8cbfaf009d9117abc4f339c0865) @@ -28,6 +28,7 @@ import java.util.List; import java.util.Arrays; import java.util.Set; +import java.util.HashSet; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; @@ -43,11 +44,14 @@ import org.apache.struts.action.ActionMessages; import org.apache.struts.action.DynaActionForm; import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; +import org.lamsfoundation.lams.usermanagement.Country; +import org.lamsfoundation.lams.usermanagement.Language; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; +import org.lamsfoundation.lams.usermanagement.Workspace; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.web.util.HttpSessionManager; import org.springframework.web.context.WebApplicationContext; @@ -87,9 +91,11 @@ HttpServletRequest request, HttpServletResponse response) throws Exception { DynaActionForm userForm = (DynaActionForm)form; + Boolean edit = false; + Integer orgId = (Integer)userForm.get("orgId"); if(isCancelled(request)){ - request.setAttribute("org",userForm.get("orgId")); + request.setAttribute("org",orgId); return mapping.findForward("userlist"); } @@ -100,12 +106,18 @@ if((userForm.get("password")==null)||(((String)userForm.getString("password").trim()).length()==0)){ errors.add("password",new ActionMessage("error.password.required")); } + log.debug("password: "+userForm.get("password")); + log.debug("password2: "+userForm.get("password2")); + if(!userForm.get("password").equals(userForm.get("password2"))){ + errors.add("password",new ActionMessage("error.newpassword.mismatch")); + } if(errors.isEmpty()){ Integer userId = (Integer)userForm.get("userId"); - Integer orgId = (Integer)userForm.get("orgId"); User user; + log.debug("got userId: "+userId); if(userId!=0){ // edit user + edit = true; log.debug("editing userId: "+userId); user = (User)service.findById(User.class,userId); BeanUtils.copyProperties(user,userForm); @@ -165,30 +177,57 @@ }else{ // create user log.debug("creating user..."); - user = new User(); + user = new User((String)userForm.get("login"), (String)userForm.get("password"), + false, new Date(), + new Workspace(userForm.get("firstName")+" "+userForm.get("lastName")), (AuthenticationMethod)service.findByProperty(AuthenticationMethod.class,"authenticationMethodName","LAMS-Database").get(0), + null, null, null, null, null, null); BeanUtils.copyProperties(user,userForm); - if(service.getUserByLogin(user.getLogin())!=null) { + log.debug("new login: "+user.getLogin()); + /*if(service.getUserByLogin(user.getLogin())!=null) { errors.add("loginUnique",new ActionMessage("error.login.unique")); - } - user.setDisabledFlag(false); + }*/ + /*user.setDisabledFlag(false); user.setCreateDate(new Date()); - user.setAuthenticationMethod((AuthenticationMethod)service.findByProperty(AuthenticationMethod.class,"name","LAMS-Database").get(0)); - log.debug(user.toString()); - service.save(user); - user = service.getUserByLogin((String)userForm.get("login")); - UserOrganisation userOrganisation = new UserOrganisation(user, (Organisation)service.findById(Organisation.class,orgId)); - service.save(userOrganisation); - // set default role to learner - Role role = (Role)service.findByProperty(Role.class,"name","LEARNER").get(0); - UserOrganisationRole userOrganisationRole = new UserOrganisationRole(userOrganisation, role); - service.save(userOrganisationRole); + user.setAuthenticationMethod((AuthenticationMethod)service.findByProperty(AuthenticationMethod.class,"authenticationMethodName","LAMS-Database").get(0));*/ + log.debug("user: "+user.toString()); + try{ + service.save(user); + log.debug("user: "+user.toString()); + /*user = service.getUserByLogin((String)userForm.get("login")); + UserOrganisation userOrganisation = new UserOrganisation(user, (Organisation)service.findById(Organisation.class,orgId)); + Set uos = user.getUserOrganisations(); + uos.add(userOrganisation); + user.setUserOrganisations(uos); + service.save(userOrganisation);*/ + } catch(Exception e) { + log.debug("exception: "+e); + errors.add("loginUnique",new ActionMessage("error.login.unique")); + userForm.set("userId",null); + saveErrors(request,errors); + request.setAttribute("countries",service.findAll(Country.class)); + request.setAttribute("languages",service.findAll(Language.class)); + return mapping.findForward("user"); + } } request.setAttribute("org",orgId); log.debug("orgId: "+orgId); return mapping.findForward("userlist"); }else{ - saveErrors(request,errors); - return mapping.findForward("user"); + if(!edit){ // error screen on create user shouldn't show empty roles + userForm.set("userId",null); + } + saveErrors(request,errors); + Organisation org = (Organisation)service.findById(Organisation.class,orgId); + Organisation pOrg = org.getParentOrganisation(); + if(pOrg!=null){ + request.setAttribute("pOrgId",pOrg.getOrganisationId()); + request.setAttribute("pOrgName",pOrg.getName()); + } + request.setAttribute("orgId",orgId); + request.setAttribute("orgName",org.getName()); + request.setAttribute("countries",service.findAll(Country.class)); + request.setAttribute("languages",service.findAll(Language.class)); + return mapping.findForward("user"); } } } Index: lams_admin/web/user.jsp =================================================================== diff -u -r8cfa07901cb6337b5483aa035ab100a1d166d37d -rb09297590093f8cbfaf009d9117abc4f339c0865 --- lams_admin/web/user.jsp (.../user.jsp) (revision 8cfa07901cb6337b5483aa035ab100a1d166d37d) +++ lams_admin/web/user.jsp (.../user.jsp) (revision b09297590093f8cbfaf009d9117abc4f339c0865) @@ -10,6 +10,11 @@

+ + "> :: + + userorgmanage.do?org="> + :: User @@ -27,9 +32,13 @@ *: - + + *: + + + : @@ -109,10 +118,10 @@ : - - + +
-
+ @@ -123,5 +132,5 @@ - +
Index: lams_admin/web/userlist.jsp =================================================================== diff -u -r59b15c242a7c8f0b8508bf725882db9ad5d56749 -rb09297590093f8cbfaf009d9117abc4f339c0865 --- lams_admin/web/userlist.jsp (.../userlist.jsp) (revision 59b15c242a7c8f0b8508bf725882db9ad5d56749) +++ lams_admin/web/userlist.jsp (.../userlist.jsp) (revision b09297590093f8cbfaf009d9117abc4f339c0865) @@ -6,10 +6,19 @@ <%@ taglib uri="tags-fmt" prefix="fmt" %>
-

:

+

+ + "> :: + + userorgmanage.do?org="> + :: + +

-' />

+ + ' />

+
@@ -47,7 +56,7 @@ Index: lams_admin/web/userorg.jsp =================================================================== diff -u -r40cd00471f7910f9cc2459a03082d35b33fd8308 -rb09297590093f8cbfaf009d9117abc4f339c0865 --- lams_admin/web/userorg.jsp (.../userorg.jsp) (revision 40cd00471f7910f9cc2459a03082d35b33fd8308) +++ lams_admin/web/userorg.jsp (.../userorg.jsp) (revision b09297590093f8cbfaf009d9117abc4f339c0865) @@ -9,7 +9,12 @@

- Add Users to Course/Class: + + "> :: + + userorgmanage.do?org="> + :: +

  - +