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; } - + }