Index: lams_build/lib/lams/lams.jar
===================================================================
diff -u -re23e3efb1b812146c7fbd114f16ebac155b1b327 -r2f232c2fe9781a2deca52b5782759e05fe25f6b9
Binary files differ
Index: lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java
===================================================================
diff -u -rd7db13b29b096fc286293559dbc3c753f7880d26 -r2f232c2fe9781a2deca52b5782759e05fe25f6b9
--- lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java (.../RegisterServiceSoapBindingImpl.java) (revision d7db13b29b096fc286293559dbc3c753f7880d26)
+++ lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java (.../RegisterServiceSoapBindingImpl.java) (revision 2f232c2fe9781a2deca52b5782759e05fe25f6b9)
@@ -118,8 +118,8 @@
Iterator iter2 = org.getLessons().iterator();
while (iter2.hasNext()) {
Lesson lesson = (Lesson) iter2.next();
- lessonService.addLearner(lesson.getLessonId(), user);
- lessonService.addStaffMember(lesson.getLessonId(), user);
+ lessonService.addLearner(lesson.getLessonId(), user.getUserId());
+ lessonService.addStaffMember(lesson.getLessonId(), user.getUserId());
log.debug("Added " + user.getLogin() + " to " + lesson.getLessonName());
}
}
Index: lams_common/src/java/org/lamsfoundation/lams/integration/util/LoginRequestDispatcher.java
===================================================================
diff -u -rf0c3f41d54ef4f390ef3f93f28c0679c46b6730c -r2f232c2fe9781a2deca52b5782759e05fe25f6b9
--- lams_common/src/java/org/lamsfoundation/lams/integration/util/LoginRequestDispatcher.java (.../LoginRequestDispatcher.java) (revision f0c3f41d54ef4f390ef3f93f28c0679c46b6730c)
+++ lams_common/src/java/org/lamsfoundation/lams/integration/util/LoginRequestDispatcher.java (.../LoginRequestDispatcher.java) (revision 2f232c2fe9781a2deca52b5782759e05fe25f6b9)
@@ -23,19 +23,23 @@
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
+import org.apache.log4j.Logger;
import org.lamsfoundation.lams.integration.ExtServerOrgMap;
import org.lamsfoundation.lams.integration.ExtUserUseridMap;
import org.lamsfoundation.lams.integration.UserInfoFetchException;
import org.lamsfoundation.lams.integration.service.IIntegrationService;
import org.lamsfoundation.lams.integration.service.IntegrationService;
import org.lamsfoundation.lams.lesson.service.ILessonService;
+import org.lamsfoundation.lams.usermanagement.User;
import org.springframework.web.context.support.WebApplicationContextUtils;
/**
* @author Fei Yang, Anthony Xiao
*/
public class LoginRequestDispatcher {
+ private static Logger log = Logger.getLogger(LoginRequestDispatcher.class);
+
public static final String PARAM_USER_ID = "uid";
public static final String PARAM_SERVER_ID = "sid";
@@ -123,9 +127,16 @@
String extUsername = request.getParameter(PARAM_USER_ID);
ExtServerOrgMap serverMap = integrationService.getExtServerOrgMap(serverId);
ExtUserUseridMap userMap = integrationService.getExtUserUseridMap(serverMap, extUsername);
+ User user = userMap.getUser();
+ if ( user == null ) {
+ String error = "Unable to add user to lesson class as user is missing from the user map";
+ log.error(error);
+ throw new UserInfoFetchException(error);
+ }
+
if(METHOD_LEARNER.equals(method))
- lessonService.addLearner(Long.parseLong(lessonId), userMap.getUser());
+ lessonService.addLearner(Long.parseLong(lessonId), user.getUserId());
else if(METHOD_MONITOR.equals(method))
- lessonService.addStaffMember(Long.parseLong(lessonId), userMap.getUser());
+ lessonService.addStaffMember(Long.parseLong(lessonId), user.getUserId());
}
}
Index: lams_common/src/java/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml
===================================================================
diff -u -rfbeb734a6ccb4d08e312fbf1b7fc6eb7bae46535 -r2f232c2fe9781a2deca52b5782759e05fe25f6b9
--- lams_common/src/java/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml (.../lessonApplicationContext.xml) (revision fbeb734a6ccb4d08e312fbf1b7fc6eb7bae46535)
+++ lams_common/src/java/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml (.../lessonApplicationContext.xml) (revision 2f232c2fe9781a2deca52b5782759e05fe25f6b9)
@@ -27,6 +27,7 @@
+
Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java
===================================================================
diff -u -rc8409f1c984169ae3b83277f54b1be8cc65e71b3 -r2f232c2fe9781a2deca52b5782759e05fe25f6b9
--- lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision c8409f1c984169ae3b83277f54b1be8cc65e71b3)
+++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision 2f232c2fe9781a2deca52b5782759e05fe25f6b9)
@@ -24,7 +24,6 @@
package org.lamsfoundation.lams.lesson.service;
-import java.util.Collection;
import java.util.List;
import org.lamsfoundation.lams.learningdesign.GroupingActivity;
@@ -143,16 +142,16 @@
/**
* Add a learner to the lesson class. Checks for duplicates.
- * @paran user new learner
+ * @paran userId new learner id
* @return true if added user, returns false if the user already a learner and hence not added.
*/
- public boolean addLearner(Long lessonId, User user);
+ public boolean addLearner(Long lessonId, Integer userId);
/**
* Add a new staff member to the lesson class. Checks for duplicates.
- * @paran user new learner
+ * @paran userId new learner id
* @return true if added user, returns false if the user already a staff member and hence not added.
*/
- public boolean addStaffMember(Long lessonId, User user);
+ public boolean addStaffMember(Long lessonId, Integer userId);
}
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java
===================================================================
diff -u -r315fad9f727a91c28b274654eab02cac89d76b9c -r2f232c2fe9781a2deca52b5782759e05fe25f6b9
--- lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision 315fad9f727a91c28b274654eab02cac89d76b9c)
+++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision 2f232c2fe9781a2deca52b5782759e05fe25f6b9)
@@ -27,6 +27,7 @@
import java.util.List;
import org.apache.log4j.Logger;
+import org.lamsfoundation.lams.dao.IBaseDAO;
import org.lamsfoundation.lams.learningdesign.Group;
import org.lamsfoundation.lams.learningdesign.Grouper;
import org.lamsfoundation.lams.learningdesign.Grouping;
@@ -71,6 +72,7 @@
private ILessonClassDAO lessonClassDAO;
private IGroupingDAO groupingDAO;
private MessageService messageService;
+ private IBaseDAO baseDAO;
/* ******* Spring injection methods ***************************************/
public void setLessonDAO(ILessonDAO lessonDAO) {
@@ -90,7 +92,13 @@
this.messageService = messageService;
}
+ public void setBaseDAO(
+ IBaseDAO baseDAO) {
+ this.baseDAO = baseDAO;
+ }
+
+
/* *********** Service methods ***********************************************/
/* (non-Javadoc)
* @see org.lamsfoundation.lams.lesson.service.ILessonService#getActiveLessonLearners(java.lang.Long)
@@ -311,10 +319,10 @@
/**
* Add a learner to the lesson class. Checks for duplicates.
- * @param user new learner
+ * @param userId new learner id
* @return true if added user, returns false if the user already a learner and hence not added.
*/
- public boolean addLearner(Long lessonId, User user) throws LessonServiceException {
+ public boolean addLearner(Long lessonId, Integer userId) throws LessonServiceException {
Lesson lesson = lessonDAO.getLesson(lessonId);
if ( lesson == null ) {
throw new LessonServiceException("Lesson "+lessonId+" does not exist. Unable to add learner to lesson.");
@@ -332,10 +340,7 @@
if ( learnersGroup != null )
lessonDAO.initialize(learnersGroup);
- // hack - if coming from moodle and person is accessing lams
- // for the first time since it starts, the user object isn't full initialised.
- lessonDAO.initialize(user);
-
+ User user = (User) baseDAO.find(User.class,userId);
boolean ret = lessonClass.addLearner(user);
if ( ret ) {
lessonClassDAO.updateLessonClass(lessonClass);
@@ -345,10 +350,10 @@
/**
* Add a new staff member to the lesson class. Checks for duplicates.
- * @param user new learner
+ * @param userId new learner id
* @return true if added user, returns false if the user already a staff member and hence not added.
*/
- public boolean addStaffMember(Long lessonId, User user) {
+ public boolean addStaffMember(Long lessonId, Integer userId) {
Lesson lesson = lessonDAO.getLesson(lessonId);
if ( lesson == null ) {
throw new LessonServiceException("Lesson "+lessonId+" does not exist. Unable to add staff member to lesson.");
@@ -361,17 +366,13 @@
}
lessonDAO.initialize(lessonClass.getStaffGroup());
+ User user = (User) baseDAO.find(User.class,userId);
- // hack - if coming from moodle and person is accessing lams
- // for the first time since it starts, the user object isn't full initialised.
- lessonDAO.initialize(user);
-
-
boolean ret = lessonClass.addStaffMember(user);
if ( ret ) {
lessonClassDAO.updateLessonClass(lessonClass);
}
return ret;
}
-
+
}