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.30 -r1.31
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java 4 Sep 2006 02:51:22 -0000 1.30
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java 5 Sep 2006 05:47:56 -0000 1.31
@@ -94,12 +94,16 @@
Organisation org = (Organisation)getService().findById(Organisation.class,orgId);
OrganisationType orgType = org.getOrganisationType();
Boolean isSysadmin = request.isUserInRole(Role.SYSADMIN);
+ User requestor = (User)getService().getUserByLogin(request.getRemoteUser());
+ Boolean hasRole = getService().isUserInRole(requestor.getUserId(), orgId, Role.COURSE_ADMIN)
+ || getService().isUserInRole(requestor.getUserId(), orgId, Role.COURSE_MANAGER);
+ Boolean canEdit = org.getCourseAdminCanAddNewUsers() && hasRole;
ActionMessages errors = new ActionMessages();
request.setAttribute("rolelist",filterRoles(rolelist,isSysadmin, orgType));
// set canEdit for whether user should be able to edit anything other than roles
- request.setAttribute("canEdit",isSysadmin);
+ request.setAttribute("canEdit",isSysadmin || canEdit);
request.setAttribute("locales",locales);
// editing a user
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserListDTO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserListDTO.java,v
diff -u -r1.3 -r1.4
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserListDTO.java 9 Aug 2006 07:07:00 -0000 1.3
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserListDTO.java 5 Sep 2006 05:47:56 -0000 1.4
@@ -38,6 +38,8 @@
private List userManageBeans;
private Integer orgId;
private String orgName;
+ private Boolean courseAdminCanAddNewUsers;
+ private Boolean courseAdminCanBrowseAllUsers;
public List getUserManageBeans() {
return userManageBeans;
@@ -62,4 +64,20 @@
public void setOrgName(String orgName) {
this.orgName = orgName;
}
+
+ public Boolean getCourseAdminCanAddNewUsers() {
+ return courseAdminCanAddNewUsers;
+ }
+
+ public void setCourseAdminCanAddNewUsers(Boolean courseAdminCanAddNewUsers) {
+ this.courseAdminCanAddNewUsers = courseAdminCanAddNewUsers;
+ }
+
+ public Boolean getCourseAdminCanBrowseAllUsers() {
+ return courseAdminCanBrowseAllUsers;
+ }
+
+ public void setCourseAdminCanBrowseAllUsers(Boolean courseAdminCanBrowseAllUsers) {
+ this.courseAdminCanBrowseAllUsers = courseAdminCanBrowseAllUsers;
+ }
}
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java,v
diff -u -r1.14 -r1.15
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java 9 Aug 2006 07:06:16 -0000 1.14
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java 5 Sep 2006 05:47:56 -0000 1.15
@@ -109,23 +109,25 @@
OrganisationType orgType = organisation.getOrganisationType();
request.setAttribute("orgType",orgType.getOrganisationTypeId());
+ // create form object
+ UserListDTO userManageForm = new UserListDTO();
Integer userId = ((UserDTO)SessionManager.getSession().getAttribute(AttributeNames.USER)).getUserID();
Organisation orgOfCourseAdmin = (orgType.getOrganisationTypeId().equals(OrganisationType.CLASS_TYPE)) ? pOrg : organisation;
// check permission
if(request.isUserInRole(Role.SYSADMIN)){
- request.setAttribute("canAdd",true);
- }else if(getService().isUserInRole(userId,orgOfCourseAdmin.getOrganisationId(),Role.COURSE_ADMIN) || getService().isUserInRole(userId,orgOfCourseAdmin.getOrganisationId(),Role.COURSE_MANAGER)){
- request.setAttribute("canAdd",orgOfCourseAdmin.getCourseAdminCanAddNewUsers());
+ userManageForm.setCourseAdminCanAddNewUsers(true);
+ userManageForm.setCourseAdminCanBrowseAllUsers(true);
+ }else if(getService().isUserInRole(userId,orgOfCourseAdmin.getOrganisationId(),Role.COURSE_ADMIN)
+ || getService().isUserInRole(userId,orgOfCourseAdmin.getOrganisationId(),Role.COURSE_MANAGER)){
+ userManageForm.setCourseAdminCanAddNewUsers(orgOfCourseAdmin.getCourseAdminCanAddNewUsers());
+ userManageForm.setCourseAdminCanBrowseAllUsers(orgOfCourseAdmin.getCourseAdminCanBrowseAllUsers());
}else{
request.setAttribute("errorName","UserManageAction");
request.setAttribute("errorMessage",getMessageService().getMessage("error.authorisation"));
return mapping.findForward("error");
}
-
- // create form object
- UserListDTO userManageForm = new UserListDTO();
userManageForm.setOrgId(orgId);
userManageForm.setOrgName(orgName);
List userManageBeans = getService().getUserManageBeans(orgId);
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgAction.java,v
diff -u -r1.10 -r1.11
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgAction.java 31 Aug 2006 04:41:41 -0000 1.10
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgAction.java 5 Sep 2006 05:47:56 -0000 1.11
@@ -106,20 +106,19 @@
Organisation orgOfCourseAdmin = (orgType.equals(OrganisationType.CLASS_TYPE)) ? parentOrg : organisation;
if(request.isUserInRole(Role.SYSADMIN)){
users = getService().findAll(User.class);
- }else if(getService().isUserInRole(userId,orgOfCourseAdmin.getOrganisationId(),Role.COURSE_ADMIN)){
- if(orgOfCourseAdmin.getCourseAdminCanAddNewUsers()){
- if(orgOfCourseAdmin.getCourseAdminCanBrowseAllUsers()){
- users = getService().findAll(User.class);
- }else if(orgType.equals(OrganisationType.CLASS_TYPE)){
- users = getService().getUsersFromOrganisation(parentOrg.getOrganisationId());
- }else if(orgType.equals(OrganisationType.COURSE_TYPE)){
- users = getService().getUsersFromOrganisation(orgId);
- }
- }else{
- request.setAttribute("errorName","UserOrgAction");
- request.setAttribute("errorMessage",getMessageService().getMessage("error.authorisation"));
- return mapping.findForward("error");
+ }else if(getService().isUserInRole(userId,orgOfCourseAdmin.getOrganisationId(),Role.COURSE_ADMIN)
+ || getService().isUserInRole(userId,orgOfCourseAdmin.getOrganisationId(),Role.COURSE_MANAGER)){
+ if(orgOfCourseAdmin.getCourseAdminCanBrowseAllUsers()){
+ users = getService().findAll(User.class);
+ }else if(orgType.equals(OrganisationType.CLASS_TYPE)){
+ users = getService().getUsersFromOrganisation(parentOrg.getOrganisationId());
+ }else if(orgType.equals(OrganisationType.COURSE_TYPE)){
+ users = getService().getUsersFromOrganisation(orgId);
}
+ }else{
+ request.setAttribute("errorName","UserOrgAction");
+ request.setAttribute("errorMessage",getMessageService().getMessage("error.authorisation"));
+ return mapping.findForward("error");
}
users = removeDisabledUsers(users);
Collections.sort(users);
Index: lams_admin/web/userlist.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_admin/web/userlist.jsp,v
diff -u -r1.9 -r1.10
--- lams_admin/web/userlist.jsp 26 Jul 2006 08:05:31 -0000 1.9
+++ lams_admin/web/userlist.jsp 5 Sep 2006 05:47:57 -0000 1.10
@@ -15,12 +15,15 @@
-
- ' />
-
- ' />
-
-
+
+ ' />
+
+
+
+ ' />
+
+
+