Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgManageAction.java =================================================================== diff -u -ra80940742479722c5ce3d92519403d59f22964d8 -rad29021ac685d561c3df97264cf7f6c7ba22dc09 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgManageAction.java (.../OrgManageAction.java) (revision a80940742479722c5ce3d92519403d59f22964d8) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgManageAction.java (.../OrgManageAction.java) (revision ad29021ac685d561c3df97264cf7f6c7ba22dc09) @@ -35,6 +35,8 @@ 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.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationType; @@ -63,7 +65,7 @@ * * @struts:action path="/orgmanage" * validate="false" - * + * * @struts:action-forward name="orglist" * path=".orglist" */ @@ -78,14 +80,29 @@ HttpServletRequest request, HttpServletResponse response) throws Exception{ + ActionMessages errors = new ActionMessages(); Integer orgId = WebUtil.readIntParam(request,"org",true); if(orgId==null){ orgId = (Integer)request.getAttribute("org"); } + if((orgId==null)||(orgId<=0)){ + errors.add("org",new ActionMessage("error.org.invalid")); + saveErrors(request,errors); + return mapping.findForward("error"); + } String username = request.getRemoteUser(); OrgListDTO orgManageForm = new OrgListDTO(); Organisation org = service.getOrganisationById(orgId); log.debug("orgId:"+orgId); + if(org==null){ + errors.add("org",new ActionMessage("error.org.invalid")); + }else if(org.getOrganisationType().getOrganisationTypeId().equals(OrganisationType.CLASS_TYPE)){ + errors.add("org",new ActionMessage("error.orgtype.invalid")); + } + if(!errors.isEmpty()){ + saveErrors(request,errors); + return mapping.findForward("error"); + } orgManageForm.setParentId(orgId); orgManageForm.setParentName(org.getName()); orgManageForm.setType(org.getOrganisationType().getOrganisationTypeId()); @@ -130,7 +147,7 @@ Iterator iter = userOrganisation.getUserOrganisationRoles().iterator(); while(iter.hasNext()){ UserOrganisationRole userOrganisationRole = (UserOrganisationRole)iter.next(); - if(userOrganisationRole.getRole().isSysAdmin()||userOrganisationRole.getRole().isCourseManager()||userOrganisationRole.getRole().isCourseAdmin()){ + if(userOrganisationRole.getRole().isCourseManager()||userOrganisationRole.getRole().isCourseAdmin()){ orgManageBean.setEditable(true); break; } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgSaveAction.java =================================================================== diff -u -ra80940742479722c5ce3d92519403d59f22964d8 -rad29021ac685d561c3df97264cf7f6c7ba22dc09 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgSaveAction.java (.../OrgSaveAction.java) (revision a80940742479722c5ce3d92519403d59f22964d8) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgSaveAction.java (.../OrgSaveAction.java) (revision ad29021ac685d561c3df97264cf7f6c7ba22dc09) @@ -96,17 +96,19 @@ errors.add("name",new ActionMessage("error.name.required")); } if(errors.isEmpty()){ - Organisation org = new Organisation(); - BeanUtils.copyProperties(org,orgForm); - log.debug("orgId in orgForm:"+(Integer)orgForm.get("orgId")); - if((Integer)orgForm.get("orgId")!=0){ - org.setCreateDate(service.getOrganisationById((Integer)orgForm.get("orgId")).getCreateDate()); + Integer orgId = (Integer)orgForm.get("orgId"); + Organisation org; + if(orgId!=0){ + org = service.getOrganisationById(orgId); }else{ + org = new Organisation(); org.setCreateDate(new Date()); + org.setParentOrganisation(service.getOrganisationById((Integer)orgForm.get("parentId"))); + org.setOrganisationType(service.getOrganisationTypeById((Integer)orgForm.get("typeId"))); } - org.setParentOrganisation(service.getOrganisationById((Integer)orgForm.get("parentId"))); + BeanUtils.copyProperties(org,orgForm); + log.debug("orgId:"+org.getOrganisationId()+" language:"+org.getLocaleLanguage()+" Country:"+org.getLocaleCountry()+" create date:"+org.getCreateDate()); org.setOrganisationState(service.getOrganisationStateById((Integer)orgForm.get("stateId"))); - org.setOrganisationType(service.getOrganisationTypeById((Integer)orgForm.get("typeId"))); service.saveOrganisation(org,service.getUserByLogin(request.getRemoteUser()).getUserId()); request.setAttribute("org",orgForm.get("parentId")); return mapping.findForward("orglist");