Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml
===================================================================
diff -u -r36855148d0e3028a6f5651d0ce51aa0d1bf8de1a -re803c94086cc8f1ae62ffd49a1a8f9c194639db1
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml (.../Activity.hbm.xml) (revision 36855148d0e3028a6f5651d0ce51aa0d1bf8de1a)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml (.../Activity.hbm.xml) (revision e803c94086cc8f1ae62ffd49a1a8f9c194639db1)
@@ -222,15 +222,15 @@
-
+
-
+
-
+
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Group.hbm.xml
===================================================================
diff -u -r36855148d0e3028a6f5651d0ce51aa0d1bf8de1a -re803c94086cc8f1ae62ffd49a1a8f9c194639db1
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Group.hbm.xml (.../Group.hbm.xml) (revision 36855148d0e3028a6f5651d0ce51aa0d1bf8de1a)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Group.hbm.xml (.../Group.hbm.xml) (revision e803c94086cc8f1ae62ffd49a1a8f9c194639db1)
@@ -74,7 +74,7 @@
-
+
-
+
-
+
-
+
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml
===================================================================
diff -u -r36855148d0e3028a6f5651d0ce51aa0d1bf8de1a -re803c94086cc8f1ae62ffd49a1a8f9c194639db1
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml (.../Organisation.hbm.xml) (revision 36855148d0e3028a6f5651d0ce51aa0d1bf8de1a)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml (.../Organisation.hbm.xml) (revision e803c94086cc8f1ae62ffd49a1a8f9c194639db1)
@@ -226,7 +226,7 @@
-
+
@hibernate.set lazy="true" inverse="true" cascade="none"
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Role.hbm.xml
===================================================================
diff -u -r36855148d0e3028a6f5651d0ce51aa0d1bf8de1a -re803c94086cc8f1ae62ffd49a1a8f9c194639db1
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Role.hbm.xml (.../Role.hbm.xml) (revision 36855148d0e3028a6f5651d0ce51aa0d1bf8de1a)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Role.hbm.xml (.../Role.hbm.xml) (revision e803c94086cc8f1ae62ffd49a1a8f9c194639db1)
@@ -69,33 +69,6 @@
-
-
-
- @hibernate.set
- lazy="true"
- inverse="true"
- cascade="delete-orphan"
-
- @hibernate.collection-key
- column="role_id"
-
- @hibernate.collection-one-to-many
- class="org.lamsfoundation.lams.usermanagement.UserOrganisationRole"
-
-
-
-
-
-
-
Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/Role.java
===================================================================
diff -u -ree6a40ada6ae3bea48ecdedc5cad0ce3e7a3f3d8 -re803c94086cc8f1ae62ffd49a1a8f9c194639db1
--- lams_common/src/java/org/lamsfoundation/lams/usermanagement/Role.java (.../Role.java) (revision ee6a40ada6ae3bea48ecdedc5cad0ce3e7a3f3d8)
+++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/Role.java (.../Role.java) (revision e803c94086cc8f1ae62ffd49a1a8f9c194639db1)
@@ -24,47 +24,42 @@
package org.lamsfoundation.lams.usermanagement;
import java.io.Serializable;
-import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
-public class Role implements Serializable,Comparable{
+public class Role implements Serializable, Comparable {
- public static final String LEARNER = "LEARNER";
-
- public static final String MONITOR = "MONITOR";
-
- public static final String AUTHOR = "AUTHOR";
-
- public static final String AUTHOR_ADMIN = "AUTHOR ADMIN";
-
- public static final String GROUP_MANAGER = "GROUP MANAGER";
-
- public static final String GROUP_ADMIN = "GROUP ADMIN";
-
- public static final String SYSADMIN = "SYSADMIN";//for future use
-
- /**
- * Added by Manpreet Minhas
- * ***********************
- * final static variables indicating the various
- * roles available for a given user ar per the
- * database. New roles may be added/deleted in the
- * near future
- *
- ************************************************************/
- public static final Integer ROLE_SYSADMIN =new Integer(1);
- public static final Integer ROLE_GROUP_MANAGER =new Integer(2);
- public static final Integer ROLE_AUTHOR =new Integer(3);
- public static final Integer ROLE_MONITOR =new Integer(4);
- public static final Integer ROLE_LEARNER =new Integer(5);
- public static final Integer ROLE_GROUP_ADMIN =new Integer(6);
- public static final Integer ROLE_AUTHOR_ADMIN =new Integer(7);
- /***********************************************************/
-
+ public static final String LEARNER = "LEARNER";
+
+ public static final String MONITOR = "MONITOR";
+
+ public static final String AUTHOR = "AUTHOR";
+
+ public static final String AUTHOR_ADMIN = "AUTHOR ADMIN";
+
+ public static final String GROUP_MANAGER = "GROUP MANAGER";
+
+ public static final String GROUP_ADMIN = "GROUP ADMIN";
+
+ public static final String SYSADMIN = "SYSADMIN";// for future use
+
+ /**
+ * Added by Manpreet Minhas *********************** final static variables indicating the various roles available
+ * for a given user ar per the database. New roles may be added/deleted in the near future
+ *
+ ************************************************************/
+ public static final Integer ROLE_SYSADMIN = new Integer(1);
+ public static final Integer ROLE_GROUP_MANAGER = new Integer(2);
+ public static final Integer ROLE_AUTHOR = new Integer(3);
+ public static final Integer ROLE_MONITOR = new Integer(4);
+ public static final Integer ROLE_LEARNER = new Integer(5);
+ public static final Integer ROLE_GROUP_ADMIN = new Integer(6);
+ public static final Integer ROLE_AUTHOR_ADMIN = new Integer(7);
+ /***********************************************************/
+
/** identifier field */
private Integer roleId;
@@ -75,16 +70,12 @@
private String description;
/** persistent field */
- private Set userOrganisationRoles;
-
- /** persistent field */
private Set rolePrivileges;
/** full constructor */
- public Role(String name, String description, Set userOrganisationRoles) {
- this.name = name;
- this.description = description;
- this.userOrganisationRoles = userOrganisationRoles;
+ public Role(String name, String description) {
+ this.name = name;
+ this.description = description;
}
/** default constructor */
@@ -93,99 +84,87 @@
/** minimal constructor */
public Role(String name, Set userOrganisationRoles) {
- this.name = name;
- this.userOrganisationRoles = userOrganisationRoles;
+ this.name = name;
}
public Integer getRoleId() {
- return this.roleId;
+ return this.roleId;
}
public void setRoleId(Integer roleId) {
- this.roleId = roleId;
+ this.roleId = roleId;
}
public String getName() {
- return this.name;
+ return this.name;
}
public void setName(String name) {
- this.name = name;
+ this.name = name;
}
public String getDescription() {
- return this.description;
+ return this.description;
}
public void setDescription(String description) {
- this.description = description;
+ this.description = description;
}
- public Set getUserOrganisationRoles() {
- return this.userOrganisationRoles;
+ public Set getRolePrivileges() {
+ return rolePrivileges;
}
- public void setUserOrganisationRoles(Set userOrganisationRoles) {
- this.userOrganisationRoles = userOrganisationRoles;
+ public void setRolePrivileges(Set rolePrivileges) {
+ this.rolePrivileges = rolePrivileges;
}
- public Set getRolePrivileges() {
- return rolePrivileges;
- }
-
- public void setRolePrivileges(Set rolePrivileges) {
- this.rolePrivileges = rolePrivileges;
- }
-
- public void addUserOrganisationRole(UserOrganisationRole userOrganisationRole){
- if(userOrganisationRoles==null)
- userOrganisationRoles = new HashSet();
- userOrganisationRoles.add(userOrganisationRole);
- }
+ @Override
public String toString() {
- return new ToStringBuilder(this)
- .append("roleId", getRoleId())
- .toString();
+ return new ToStringBuilder(this).append("roleId", getRoleId()).toString();
}
+ @Override
public boolean equals(Object other) {
- if ( !(other instanceof Role) ) return false;
- Role castOther = (Role) other;
- return new EqualsBuilder()
- .append(this.getRoleId(), castOther.getRoleId())
- .isEquals();
+ if (!(other instanceof Role)) {
+ return false;
+ }
+ Role castOther = (Role) other;
+ return new EqualsBuilder().append(this.getRoleId(), castOther.getRoleId()).isEquals();
}
-
- public int compareTo(Object role){
- Role r = (Role)role;
- return name.compareTo(r.getName());
+
+ @Override
+ public int compareTo(Object role) {
+ Role r = (Role) role;
+ return name.compareTo(r.getName());
}
+ @Override
public int hashCode() {
- return new HashCodeBuilder()
- .append(getRoleId())
- .toHashCode();
+ return new HashCodeBuilder().append(getRoleId()).toHashCode();
}
- public boolean isAuthor(){
- return this.roleId.equals(ROLE_AUTHOR);
+
+ public boolean isAuthor() {
+ return this.roleId.equals(Role.ROLE_AUTHOR);
}
- public boolean isGroupManager(){
- return this.roleId.equals(ROLE_GROUP_MANAGER);
+
+ public boolean isGroupManager() {
+ return this.roleId.equals(Role.ROLE_GROUP_MANAGER);
}
-
- public boolean isGroupAdmin(){
- return this.roleId.equals(ROLE_GROUP_ADMIN);
+
+ public boolean isGroupAdmin() {
+ return this.roleId.equals(Role.ROLE_GROUP_ADMIN);
}
-
- public boolean isMonitor(){
- return this.roleId.equals(ROLE_MONITOR);
+
+ public boolean isMonitor() {
+ return this.roleId.equals(Role.ROLE_MONITOR);
}
- public boolean isSysAdmin(){
- return this.roleId.equals(ROLE_SYSADMIN);
+ public boolean isSysAdmin() {
+ return this.roleId.equals(Role.ROLE_SYSADMIN);
}
-
- public boolean isAuthorAdmin(){
- return this.roleId.equals(ROLE_AUTHOR_ADMIN);
+
+ public boolean isAuthorAdmin() {
+ return this.roleId.equals(Role.ROLE_AUTHOR_ADMIN);
}
}
Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java
===================================================================
diff -u -rac293c56d01d08018c14f01dfa851a772dfde23a -re803c94086cc8f1ae62ffd49a1a8f9c194639db1
--- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision ac293c56d01d08018c14f01dfa851a772dfde23a)
+++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision e803c94086cc8f1ae62ffd49a1a8f9c194639db1)
@@ -433,6 +433,7 @@
* @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getUsersFromOrganisationByRole(java.lang.Integer,
* java.lang.String)
*/
+ @SuppressWarnings("unchecked")
public Vector getUsersFromOrganisationByRole(Integer organisationID, String roleName, boolean isFlashCall,
boolean getUser) {
Vector users = null;
@@ -444,30 +445,21 @@
users = new Vector();
}
- Organisation organisation = (Organisation) baseDAO.find(Organisation.class, organisationID);
- if (organisation != null) {
- Set uos = organisation.getUserOrganisations();
- if (uos != null) {
- Iterator iterator = uos.iterator();
- while (iterator.hasNext()) {
- UserOrganisation userOrganisation = (UserOrganisation) iterator.next();
- Iterator userOrganisationRoleIterator = userOrganisation.getUserOrganisationRoles().iterator();
- while (userOrganisationRoleIterator.hasNext()) {
- UserOrganisationRole userOrganisationRole = (UserOrganisationRole) userOrganisationRoleIterator
- .next();
- if (userOrganisationRole.getRole().getName().equals(roleName)) {
- if (isFlashCall && !getUser) {
- users.add(userOrganisation.getUser().getUserFlashDTO());
- } else if (getUser) {
- users.add(userOrganisation.getUser());
- } else {
- users.add(userOrganisation.getUser().getUserDTO());
- }
- }
- }
- }
+ // it's ugly to put query string here, but it is a convention of this class so let's stick to it for now
+ String query = "SELECT uo.user FROM UserOrganisation uo INNER JOIN uo.userOrganisationRoles r WHERE uo.organisation.organisationId="
+ + organisationID + " AND r.role.name= '" + roleName + "'";
+ List queryResult = (List) baseDAO.find(query);
+
+ for (User user : queryResult) {
+ if (isFlashCall && !getUser) {
+ users.add(user.getUserFlashDTO());
+ } else if (getUser) {
+ users.add(user);
+ } else {
+ users.add(user.getUserDTO());
}
}
+
return users;
}
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java
===================================================================
diff -u -r7fa802b7c320a02bee50983e37f514aa08755436 -re803c94086cc8f1ae62ffd49a1a8f9c194639db1
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 7fa802b7c320a02bee50983e37f514aa08755436)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision e803c94086cc8f1ae62ffd49a1a8f9c194639db1)
@@ -21,6 +21,7 @@
* ****************************************************************
*/
+/* $$Id$$ */
package org.lamsfoundation.lams.monitoring.web;
import java.io.IOException;
@@ -29,6 +30,7 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
@@ -276,10 +278,11 @@
.getServletContext());
Organisation organisation = (Organisation) userManagementService.findById(Organisation.class, organisationId);
+ List allUsers = userManagementService.getUsersFromOrganisation(organisationId);
String learnerGroupName = organisation.getName() + " learners";
String staffGroupName = organisation.getName() + " staff";
- List learners = parseUserList(request, "learners");
- List staff = parseUserList(request, "monitors");
+ List learners = parseUserList(request, "learners", allUsers);
+ List staff = parseUserList(request, "monitors", allUsers);
monitoringService.createLessonClassForLesson(lessonId, organisation, learnerGroupName, learners,
staffGroupName, staff, userID);
@@ -331,10 +334,11 @@
Integer userId = getUserId();
User creator = (User) userManagementService.findById(User.class, userId);
- List learners = parseUserList(request, "learners");
+ List allUsers = userManagementService.getUsersFromOrganisation(organisationId);
+ List learners = parseUserList(request, "learners", allUsers);
String learnerGroupName = organisation.getName() + " learners";
- List staff = parseUserList(request, "monitors");
+ List staff = parseUserList(request, "monitors", allUsers);
// add the creator as staff, if not already done
if (!staff.contains(creator)) {
staff.add(creator);
@@ -665,7 +669,11 @@
Lesson lesson = getLessonService().getLesson(lessonId);
// monitor user opted for removing lesson progress for following users
- List removedLearners = parseUserList(request, "removedLearners");
+ IUserManagementService userManagementService = MonitoringServiceProxy.getUserManagementService(getServlet()
+ .getServletContext());
+ List allUsers = userManagementService.getUsersFromOrganisation(lesson.getOrganisation()
+ .getOrganisationId());
+ List removedLearners = parseUserList(request, "removedLearners", allUsers);
for (User removedLearner : removedLearners) {
getLessonService().removeLearnerProgress(lessonId, removedLearner.getUserId());
if (LamsDispatchAction.log.isDebugEnabled()) {
@@ -674,10 +682,10 @@
}
}
- List learners = parseUserList(request, "learners");
+ List learners = parseUserList(request, "learners", allUsers);
getLessonService().setLearners(lesson, learners);
- List staff = parseUserList(request, "monitors");
+ List staff = parseUserList(request, "monitors", allUsers);
getLessonService().setStaffMembers(lesson, staff);
return null;
@@ -1372,16 +1380,20 @@
/**
* Creates a list of users out of string with comma-delimited user IDs.
*/
- private List parseUserList(HttpServletRequest request, String paramName) {
+ private List parseUserList(HttpServletRequest request, String paramName, Collection users) {
IUserManagementService userManagementService = MonitoringServiceProxy.getUserManagementService(getServlet()
.getServletContext());
String userIdList = request.getParameter(paramName);
String[] userIdArray = userIdList.split(",");
List result = new ArrayList(userIdArray.length);
- for (String userId : userIdArray) {
- if (!StringUtils.isBlank(userId)) {
- User user = (User) userManagementService.findById(User.class, Integer.valueOf(userId));
+
+ for (User user : users) {
+ Integer userId = user.getUserId();
+ for (String includeId : userIdArray) {
+ if (userId.equals(includeId)) {
result.add(user);
+ break;
+ }
}
}
return result;