Index: lams_admin/conf/xdoclet/struts-forms.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_admin/conf/xdoclet/struts-forms.xml,v
diff -u -r1.8 -r1.9
--- lams_admin/conf/xdoclet/struts-forms.xml 29 Jun 2006 02:15:29 -0000 1.8
+++ lams_admin/conf/xdoclet/struts-forms.xml 29 Jun 2006 23:50:16 -0000 1.9
@@ -30,8 +30,7 @@
-
-
+
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java,v
diff -u -r1.12 -r1.13
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java 29 Jun 2006 02:22:33 -0000 1.12
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java 29 Jun 2006 23:50:16 -0000 1.13
@@ -26,8 +26,10 @@
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -37,11 +39,14 @@
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ActionMessage;
+import org.apache.struts.action.ActionMessages;
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.SupportedLocale;
import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.usermanagement.UserOrganisation;
import org.lamsfoundation.lams.usermanagement.UserOrganisationRole;
@@ -76,23 +81,34 @@
.getServletContext());
private static IUserManagementService service = (IUserManagementService) ctx
.getBean("userManagementServiceTarget");
- private static List countries = service.findAll(Country.class);
- private static List languages = service.findAll(Language.class);
+ //private static List countries = service.findAll(Country.class);
+ //private static List languages = service.findAll(Language.class);
+ private static List allRoles = service.findAll(Role.class);
+ private static List locales = service.findAll(SupportedLocale.class);
+ static {
+ Collections.sort(allRoles);
+ Collections.sort(locales);
+ }
public ActionForward edit(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
- // retain orgId to return to userlist
+ ActionMessages errors = new ActionMessages();
+ if(!request.isUserInRole(Role.SYSADMIN) || !request.isUserInRole(Role.COURSE_ADMIN)){
+ errors.add("permission",new ActionMessage("errors.insufficient.permissions"));
+ saveErrors(request,errors);
+ return mapping.findForward("error");
+ }
+
+ // retain orgId to return to userlist
Integer orgId = WebUtil.readIntParam(request,"orgId");
if(orgId != null) {
request.setAttribute("org",orgId);
}
-
- // get system's roles
- List allRoles = service.findAll(Role.class);
- Collections.sort(allRoles);
+
request.setAttribute("rolelist",allRoles);
+ request.setAttribute("locales",locales);
// editing a user
Integer userId = WebUtil.readIntParam(request,"userId",true);
@@ -121,6 +137,14 @@
break;
}
}
+ Map properties = new HashMap();
+ properties.put("languageIsoCode",user.getLocaleLanguage());
+ if(user.getLocaleCountry()!=null){
+ properties.put("countryIsoCode",user.getLocaleCountry());
+ }
+ SupportedLocale locale = (SupportedLocale)service.findByProperties(SupportedLocale.class,properties).get(0);
+ userForm.set("localeId",locale.getLocaleId());
+
}else{
String[] roles = new String[0];
userForm.set("roles",roles);
@@ -135,8 +159,8 @@
request.setAttribute("orgId",orgId);
request.setAttribute("orgName",org.getName());
request.setAttribute("orgType",org.getOrganisationType().getOrganisationTypeId());
- request.setAttribute("countries",countries);
- request.setAttribute("languages",languages);
+ //request.setAttribute("countries",countries);
+ //request.setAttribute("languages",languages);
return mapping.findForward("user");
}
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.11 -r1.12
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java 29 Jun 2006 04:08:12 -0000 1.11
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java 29 Jun 2006 23:50:16 -0000 1.12
@@ -48,7 +48,9 @@
import org.lamsfoundation.lams.usermanagement.Country;
import org.lamsfoundation.lams.usermanagement.Language;
import org.lamsfoundation.lams.usermanagement.Organisation;
+import org.lamsfoundation.lams.usermanagement.OrganisationType;
import org.lamsfoundation.lams.usermanagement.Role;
+import org.lamsfoundation.lams.usermanagement.SupportedLocale;
import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.usermanagement.UserOrganisation;
import org.lamsfoundation.lams.usermanagement.UserOrganisationRole;
@@ -110,6 +112,9 @@
errors.add("password",new ActionMessage("error.newpassword.mismatch"));
}
+ SupportedLocale locale = (SupportedLocale)service.findById(SupportedLocale.class,(Byte)userForm.get("localeId"));
+ log.debug("locale: "+locale);
+
if(errors.isEmpty()){
Integer userId = (Integer)userForm.get("userId");
User user;
@@ -120,7 +125,13 @@
log.debug("editing userId: "+userId);
user = (User)service.findById(User.class,userId);
BeanUtils.copyProperties(user,userForm);
- service.save(user);
+ log.debug("country: "+user.getLocaleCountry());
+ log.debug("language: "+user.getLocaleLanguage());
+ user.setLocaleCountry(locale.getCountryIsoCode());
+ user.setLocaleLanguage(locale.getLanguageIsoCode());
+ log.debug("country: "+user.getLocaleCountry());
+ log.debug("language: "+user.getLocaleLanguage());
+ //service.save(user);
List rolesList = Arrays.asList(roles);
log.debug("rolesList.size: "+rolesList.size());
@@ -181,6 +192,8 @@
user.setCreateDate(new Date());
user.setAuthenticationMethod((AuthenticationMethod)service.findByProperty(AuthenticationMethod.class,"authenticationMethodName","LAMS-Database").get(0));
user.setUserId(null);
+ user.setLocaleCountry(locale.getCountryIsoCode());
+ user.setLocaleLanguage(locale.getLanguageIsoCode());
service.save(user);
log.debug("user: "+user.toString());
HashSet uos = new HashSet();
@@ -189,7 +202,7 @@
log.debug("organisation: "+orgId);
// if user is to be added to a class, make user a member of parent course also
Organisation org = (Organisation)service.findById(Organisation.class,orgId);
- if(org.getOrganisationType().getOrganisationTypeId().equals(new Integer(3))){
+ if(org.getOrganisationType().getOrganisationTypeId().equals(new Integer(OrganisationType.CLASS_TYPE))){
Integer courseOrgId = org.getParentOrganisation().getOrganisationId();
orgs.add(courseOrgId);
log.debug("organisation: "+courseOrgId);