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 @@