Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java =================================================================== diff -u -rff056fe666b6a9a6c93cb2c02fa520345c1b077f -r97f34e32e359c8bc50394be756e4f1efa109f832 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java (.../UserManageAction.java) (revision ff056fe666b6a9a6c93cb2c02fa520345c1b077f) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java (.../UserManageAction.java) (revision 97f34e32e359c8bc50394be756e4f1efa109f832) @@ -40,6 +40,7 @@ import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.lamsfoundation.lams.usermanagement.Organisation; +import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.WebUtil; @@ -87,11 +88,8 @@ saveErrors(request,errors); return mapping.findForward("error"); } - log.debug("userlist orgId: "+orgId); + log.debug("orgId: "+orgId); - // check user permission - //String username = request.getRemoteUser(); - // get org name Organisation organisation = (Organisation)service.findById(Organisation.class,orgId); if(organisation==null) { @@ -100,8 +98,20 @@ return mapping.findForward("error"); } String orgName = organisation.getName(); - log.debug("userlist orgName: "+orgName); + log.debug("orgName: "+orgName); + Integer userId = service.getUserByLogin(request.getRemoteUser()).getUserId(); + // check permission + if(request.isUserInRole(Role.SYSADMIN)){ + request.setAttribute("canAdd",true); + }else if(!service.isUserInRole(userId,orgId,Role.COURSE_ADMIN)){ + errors.add("authorisation",new ActionMessage("error.authorisation")); + saveErrors(request,errors); + return mapping.findForward("error"); + }else{ + request.setAttribute("canAdd",organisation.getCourseAdminCanAddNewUsers()); + } + // get list of users in org List users = service.getUsersFromOrganisation(orgId); if(users==null){ Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgAction.java =================================================================== diff -u -r370771dd36b12f8db61a236712478388e83bc78d -r97f34e32e359c8bc50394be756e4f1efa109f832 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgAction.java (.../UserOrgAction.java) (revision 370771dd36b12f8db61a236712478388e83bc78d) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgAction.java (.../UserOrgAction.java) (revision 97f34e32e359c8bc50394be756e4f1efa109f832) @@ -99,28 +99,23 @@ } Integer orgType = organisation.getOrganisationType().getOrganisationTypeId(); request.setAttribute("orgType",orgType); - - // check user permission - //String username = request.getRemoteUser(); - + // get list of users in org + User user = (User)service.getUserByLogin(request.getRemoteUser()); List users = new ArrayList(); if(request.isUserInRole(Role.SYSADMIN)){ users = service.findAll(User.class); - }else if(request.isUserInRole(Role.COURSE_ADMIN)){ - if(true){ // org allows admin to add users - if(true){ // org allows admin to browse all users + }else if(service.isUserInRole(user.getUserId(),orgId,Role.COURSE_ADMIN)){ + if(organisation.getCourseAdminCanAddNewUsers()){ + if(organisation.getCourseAdminCanBrowseAllUsers()){ users = service.findAll(User.class); }else if(orgType.equals(new Integer(OrganisationType.CLASS_TYPE))){ users = service.getUsersFromOrganisation(parentOrg.getOrganisationId()); }else if(orgType.equals(new Integer(OrganisationType.COURSE_TYPE))){ users = service.getUsersFromOrganisation(orgId); - /*errors.add("permission",new ActionMessage("error.need.browse.permission")); - saveErrors(request,errors); - return mapping.findForward("userorg");*/ } }else{ - errors.add("permission",new ActionMessage("error.need.add.permission")); + errors.add("authorisation",new ActionMessage("error.authorisation")); saveErrors(request,errors); return mapping.findForward("error"); } Index: lams_admin/web/userlist.jsp =================================================================== diff -u -r4d20310bee119052061dda3443aa0c0936fd2bf4 -r97f34e32e359c8bc50394be756e4f1efa109f832 --- lams_admin/web/userlist.jsp (.../userlist.jsp) (revision 4d20310bee119052061dda3443aa0c0936fd2bf4) +++ lams_admin/web/userlist.jsp (.../userlist.jsp) (revision 97f34e32e359c8bc50394be756e4f1efa109f832) @@ -15,10 +15,12 @@

- - - ' />

- + + ' /> + + ' />

+
+