Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgSaveAction.java
===================================================================
diff -u -r570bcc3eaf789d638c08cb96e0fec3e4a9ba6167 -ref31c70885b34d2475c8b297d7f9bb0f564a829b
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgSaveAction.java (.../OrgSaveAction.java) (revision 570bcc3eaf789d638c08cb96e0fec3e4a9ba6167)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgSaveAction.java (.../OrgSaveAction.java) (revision ef31c70885b34d2475c8b297d7f9bb0f564a829b)
@@ -82,15 +82,16 @@
public class OrgSaveAction extends Action {
private static Logger log = Logger.getLogger(OrgSaveAction.class);
-
private static IUserManagementService service;
+ private MessageService messageService;
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
- service = AdminServiceProxy.getService(getServlet().getServletContext());
+ if(service==null) service = AdminServiceProxy.getService(getServlet().getServletContext());
+ if(messageService==null) messageService = AdminServiceProxy.getMessageService(getServlet().getServletContext());
DynaActionForm orgForm = (DynaActionForm)form;
Integer orgId = (Integer)orgForm.get("orgId");
Organisation org;
@@ -118,14 +119,20 @@
OrganisationState state = (OrganisationState)service.findById(OrganisationState.class,(Integer)orgForm.get("stateId"));
if(orgId!=0){
- org = (Organisation)service.findById(Organisation.class,orgId);
- // set archived date only when it first changes to become archived
- if (state.getOrganisationStateId().equals(OrganisationState.ARCHIVED)
- && !org.getOrganisationState().getOrganisationStateId().equals(OrganisationState.ARCHIVED)) {
- org.setArchivedDate(new Date());
+ if(service.canEditGroup(user.getUserID(), orgId)) {
+ org = (Organisation)service.findById(Organisation.class,orgId);
+ // set archived date only when it first changes to become archived
+ if (state.getOrganisationStateId().equals(OrganisationState.ARCHIVED)
+ && !org.getOrganisationState().getOrganisationStateId().equals(OrganisationState.ARCHIVED)) {
+ org.setArchivedDate(new Date());
+ }
+ writeAuditLog(org, orgForm, state, locale);
+ BeanUtils.copyProperties(org,orgForm);
+ } else {
+ request.setAttribute("errorName", "UserAction");
+ request.setAttribute("errorMessage", messageService.getMessage("error.authorisation"));
+ return mapping.findForward("error");
}
- writeAuditLog(org, orgForm, state, locale);
- BeanUtils.copyProperties(org,orgForm);
}else{
org = new Organisation();
BeanUtils.copyProperties(org,orgForm);
@@ -135,7 +142,9 @@
}
org.setLocale(locale);
org.setOrganisationState(state);
- log.debug("orgId:"+org.getOrganisationId()+" locale:"+org.getLocale()+" create date:"+org.getCreateDate());
+ if (log.isDebugEnabled()) {
+ log.debug("orgId: "+org.getOrganisationId()+" create date: "+org.getCreateDate());
+ }
org = service.saveOrganisation(org, user.getUserID());
request.setAttribute("org",orgForm.get("parentId"));
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrganisationAction.java
===================================================================
diff -u -re912ccae662b3d6064417e9a90a0eb9e83ee8b1b -ref31c70885b34d2475c8b297d7f9bb0f564a829b
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrganisationAction.java (.../OrganisationAction.java) (revision e912ccae662b3d6064417e9a90a0eb9e83ee8b1b)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrganisationAction.java (.../OrganisationAction.java) (revision ef31c70885b34d2475c8b297d7f9bb0f564a829b)
@@ -59,6 +59,7 @@
* validate="false"
*
* @struts:action-forward name="organisation" path=".organisation"
+ * @struts:action-forward name="organisationCourseAdmin" path=".organisationCourseAdmin"
* @struts:action-forward name="orglist" path="/orgmanage.do"
*/
public class OrganisationAction extends LamsDispatchAction {
@@ -94,7 +95,11 @@
}
request.getSession().setAttribute("locales",locales);
request.getSession().setAttribute("status",status);
- return mapping.findForward("organisation");
+ if (service.isUserSysAdmin() || service.isUserGlobalGroupAdmin()) {
+ return mapping.findForward("organisation");
+ } else {
+ return mapping.findForward("organisationCourseAdmin");
+ }
}
}
}
Index: lams_admin/web/WEB-INF/tiles/tiles-defs.xml
===================================================================
diff -u -r356ffaf58f4adcdee8255cd2cbb3d217cbee7f8d -ref31c70885b34d2475c8b297d7f9bb0f564a829b
--- lams_admin/web/WEB-INF/tiles/tiles-defs.xml (.../tiles-defs.xml) (revision 356ffaf58f4adcdee8255cd2cbb3d217cbee7f8d)
+++ lams_admin/web/WEB-INF/tiles/tiles-defs.xml (.../tiles-defs.xml) (revision ef31c70885b34d2475c8b297d7f9bb0f564a829b)
@@ -88,12 +88,17 @@
-
+
+
+
+
+
+
-
+
Fisheye: Tag ef31c70885b34d2475c8b297d7f9bb0f564a829b refers to a dead (removed) revision in file `lams_admin/web/organisation.jsp'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_admin/web/organisation/courseAdminEdit.jsp
===================================================================
diff -u
--- lams_admin/web/organisation/courseAdminEdit.jsp (revision 0)
+++ lams_admin/web/organisation/courseAdminEdit.jsp (revision ef31c70885b34d2475c8b297d7f9bb0f564a829b)
@@ -0,0 +1,82 @@
+<%@ include file="/taglibs.jsp"%>
+
+
+
+
+
+
+
+
+
+
+
+
+ :
+ ">
+
+
+
+
+
+
+
+
+
+
+
+ : |
+ * |
+
+
+ : |
+ |
+
+
+ : |
+ |
+
+
+ : |
+
+
+
+
+
+
+
+
+ |
+
+
+
+ : |
+
+
+
+
+
+
+ |
+
+
+
+ |
+
+
+
+
+ .
+ |
+
+
+ |
+
+
+
+
+
+
+ |
+
+
+
Index: lams_admin/web/organisation/createOrEdit.jsp
===================================================================
diff -u
--- lams_admin/web/organisation/createOrEdit.jsp (revision 0)
+++ lams_admin/web/organisation/createOrEdit.jsp (revision ef31c70885b34d2475c8b297d7f9bb0f564a829b)
@@ -0,0 +1,111 @@
+<%@ include file="/taglibs.jsp"%>
+
+
+
+
+
+
+
+
+
+ : ">
+
+
+
+ : ">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ : |
+ * |
+
+
+ : |
+ |
+
+
+ : |
+ |
+
+
+ : |
+
+
+
+
+
+
+
+
+ |
+
+
+ : |
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+ |
+
+
+
+
+
+ |
+
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+
+
+ .
+ |
+
+
+ |
+
+
+
+
+
+
+
+ |
+
+
+
Index: lams_admin/web/organisation/list.jsp
===================================================================
diff -u
--- lams_admin/web/organisation/list.jsp (revision 0)
+++ lams_admin/web/organisation/list.jsp (revision ef31c70885b34d2475c8b297d7f9bb0f564a829b)
@@ -0,0 +1,232 @@
+<%@ include file="/taglibs.jsp"%>
+
+
+
+
+
+
+
+
+
+
+ ">
+
+
+
+
+
+ " />
+
+
+
+
+ :
+
+
+
+
+
+
+ : ">
+
+
+
+
+
+ : |
+ |
+ : |
+ |
+
+
+ : |
+ |
+ : |
+ |
+
+
+ : |
+ |
+ : |
+ |
+
+
+ : |
+ |
+ : |
+ |
+
+
+
+
+
+ " />
+
+
+
+
+ :
+
+
+
+
+
+
+ : ">
+ : ">
+
+
+
+
+
+ : |
+ |
+ : |
+ |
+
+
+ : |
+ |
+ : |
+ |
+
+
+ : |
+ |
+ : |
+ |
+
+
+ : |
+ |
+ : |
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
Fisheye: Tag ef31c70885b34d2475c8b297d7f9bb0f564a829b refers to a dead (removed) revision in file `lams_admin/web/orglist.jsp'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java
===================================================================
diff -u -r7ab9e2377fd1ff4c3c5554bd1f6dffe3384f6f9a -ref31c70885b34d2475c8b297d7f9bb0f564a829b
--- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 7ab9e2377fd1ff4c3c5554bd1f6dffe3384f6f9a)
+++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision ef31c70885b34d2475c8b297d7f9bb0f564a829b)
@@ -1058,11 +1058,12 @@
if (isUserSysAdmin() || isUserGlobalGroupAdmin()) return true;
Organisation org = (Organisation)findById(Organisation.class, orgId);
if (org != null) {
+ Integer groupId = orgId;
if (org.getOrganisationType().getOrganisationTypeId().equals(OrganisationType.CLASS_TYPE)) {
- Integer parentOrgId = org.getParentOrganisation().getOrganisationId();
- return (isUserInRole(userId, parentOrgId, Role.GROUP_ADMIN)
- || (isUserInRole(userId, parentOrgId, Role.GROUP_MANAGER)));
+ groupId = org.getParentOrganisation().getOrganisationId();
}
+ return (isUserInRole(userId, groupId, Role.GROUP_ADMIN)
+ || (isUserInRole(userId, groupId, Role.GROUP_MANAGER)));
}
return false;
}