Index: lams_central/conf/xdoclet/filter-mappings.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_central/conf/xdoclet/filter-mappings.xml,v
diff -u -r1.16 -r1.17
--- lams_central/conf/xdoclet/filter-mappings.xml 5 Jan 2012 09:04:07 -0000 1.16
+++ lams_central/conf/xdoclet/filter-mappings.xml 15 Apr 2012 06:24:16 -0000 1.17
@@ -116,11 +116,4 @@
hibernateFilter
/OpenIDServlet
-
-
-
\ No newline at end of file
+
\ No newline at end of file
Index: lams_central/conf/xdoclet/servlet-mappings.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_central/conf/xdoclet/servlet-mappings.xml,v
diff -u -r1.20 -r1.21
--- lams_central/conf/xdoclet/servlet-mappings.xml 5 Jan 2012 09:04:07 -0000 1.20
+++ lams_central/conf/xdoclet/servlet-mappings.xml 15 Apr 2012 06:24:16 -0000 1.21
@@ -56,11 +56,4 @@
OpenIDServlet
/OpenIDServlet
-
-
-
\ No newline at end of file
+
\ No newline at end of file
Index: lams_central/conf/xdoclet/servlets.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_central/conf/xdoclet/servlets.xml,v
diff -u -r1.21 -r1.22
--- lams_central/conf/xdoclet/servlets.xml 25 Nov 2011 09:44:09 -0000 1.21
+++ lams_central/conf/xdoclet/servlets.xml 15 Apr 2012 06:24:16 -0000 1.22
@@ -103,13 +103,4 @@
org.lamsfoundation.lams.web.SIFOpenIDServlet
-
-
-
+
\ No newline at end of file
Index: lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java,v
diff -u -r1.34 -r1.35
--- lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java 9 Jan 2012 14:38:01 -0000 1.34
+++ lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java 15 Apr 2012 06:24:16 -0000 1.35
@@ -40,6 +40,8 @@
public static final String PARAM_COURSE_ID = "courseId";
public static final String PARAM_COURSE_NAME = "courseName";
+
+ public static final String PARAM_USE_PREFIX = "usePrefix";
public static final String PARAM_LEARNING_DESIGN_ID = "ldId";
Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java,v
diff -u -r1.14 -r1.15
--- lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java 26 Oct 2011 17:47:37 -0000 1.14
+++ lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java 15 Apr 2012 06:24:16 -0000 1.15
@@ -111,6 +111,7 @@
String countryIsoCode = request.getParameter(LoginRequestDispatcher.PARAM_COUNTRY);
String langIsoCode = request.getParameter(LoginRequestDispatcher.PARAM_LANGUAGE);
String courseName = request.getParameter(CentralConstants.PARAM_COURSE_NAME);
+ String usePrefix = request.getParameter(CentralConstants.PARAM_USE_PREFIX);
// implicit login params
String firstName = request.getParameter(LoginRequestDispatcher.PARAM_FIRST_NAME);
@@ -147,7 +148,7 @@
Authenticator.authenticate(serverMap, timestamp, extUsername, method, hash);
ExtCourseClassMap orgMap = getService().getExtCourseClassMap(serverMap, userMap, extCourseId,
- countryIsoCode, langIsoCode, courseName, method);
+ countryIsoCode, langIsoCode, courseName, method, Boolean.parseBoolean(usePrefix));
User user = userMap.getUser();
String login = user.getLogin();
// was using hses.inNew() API to check if the external user has logged in yet,
Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java,v
diff -u -r1.11 -r1.12
--- lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java 16 Feb 2011 10:44:41 -0000 1.11
+++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java 15 Apr 2012 06:24:19 -0000 1.12
@@ -42,7 +42,10 @@
* @author Fei Yang
*/
public interface IIntegrationService {
-
+
+ ExtCourseClassMap getExtCourseClassMap(ExtServerOrgMap serverMap, ExtUserUseridMap userMap, String extCourseId,
+ String countryIsoCode, String langIsoCode, String prettyCourseName, String method, Boolean prefix);
+
ExtCourseClassMap getExtCourseClassMap(ExtServerOrgMap serverMap, ExtUserUseridMap userMap,
String extCourseId, String countryIsoCode, String langIsoCode, String prettyCourseName, String method);
Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java,v
diff -u -r1.25 -r1.26
--- lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java 18 Oct 2011 09:43:50 -0000 1.25
+++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java 15 Apr 2012 06:24:19 -0000 1.26
@@ -65,8 +65,6 @@
import org.lamsfoundation.lams.util.HashUtil;
import org.lamsfoundation.lams.util.LanguageUtil;
-
-
/**
*
* View Source
@@ -99,7 +97,8 @@
// wrapper method for compatibility with original integration modules
public ExtCourseClassMap getExtCourseClassMap(ExtServerOrgMap serverMap, ExtUserUseridMap userMap,
- String extCourseId, String countryIsoCode, String langIsoCode, String prettyCourseName, String method) {
+ String extCourseId, String countryIsoCode, String langIsoCode, String prettyCourseName, String method,
+ Boolean prefix) {
// Set the pretty course name if available, otherwise maintain the extCourseId
String courseName = "";
@@ -108,16 +107,24 @@
} else {
courseName = extCourseId;
}
- if (StringUtils.equals(method, LoginRequestDispatcher.METHOD_AUTHOR) || StringUtils.equals(method, LoginRequestDispatcher.METHOD_MONITOR)) {
- return getExtCourseClassMap(serverMap, userMap, extCourseId, courseName, countryIsoCode, langIsoCode, service
- .getRootOrganisation().getOrganisationId().toString(), true, true);
+ if (StringUtils.equals(method, LoginRequestDispatcher.METHOD_AUTHOR)
+ || StringUtils.equals(method, LoginRequestDispatcher.METHOD_MONITOR)) {
+ return getExtCourseClassMap(serverMap, userMap, extCourseId, courseName, countryIsoCode, langIsoCode,
+ service.getRootOrganisation().getOrganisationId().toString(), true, prefix);
} else {
- return getExtCourseClassMap(serverMap, userMap, extCourseId, courseName, countryIsoCode, langIsoCode, service
- .getRootOrganisation().getOrganisationId().toString(), false, true);
+ return getExtCourseClassMap(serverMap, userMap, extCourseId, courseName, countryIsoCode, langIsoCode,
+ service.getRootOrganisation().getOrganisationId().toString(), false, prefix);
}
}
- // newer method which accepts course name, a parent org id, a flag for whether user should get
+ // wrapper method for compatibility with original integration modules
+ public ExtCourseClassMap getExtCourseClassMap(ExtServerOrgMap serverMap, ExtUserUseridMap userMap,
+ String extCourseId, String countryIsoCode, String langIsoCode, String prettyCourseName, String method) {
+ return getExtCourseClassMap(serverMap, userMap, extCourseId, countryIsoCode, langIsoCode, prettyCourseName,
+ method, true);
+ }
+
+ // newer method which accepts course name, a parent org id, a flag for whether user should get
// 'teacher' roles, and a flag for whether to use a prefix in the org's name
public ExtCourseClassMap getExtCourseClassMap(ExtServerOrgMap serverMap, ExtUserUseridMap userMap,
String extCourseId, String extCourseName, String countryIsoCode, String langIsoCode, String parentOrgId,
@@ -318,19 +325,20 @@
private String[] getUserDataFromExtServer(ExtServerOrgMap serverMap, String extUsername)
throws UserInfoFetchException {
- //the callback url must contain %username%, %timestamp% and %hash%
- //eg: "http://test100.ics.mq.edu.au/webapps/lams-plglamscontent-bb_bb60/UserData?uid=%username%&ts=%timestamp%&hash=%hash%";
- //where %username%, %timestamp% and %hash% will be replaced with their real values
+ // the callback url must contain %username%, %timestamp% and %hash%
+ // eg:
+ // "http://test100.ics.mq.edu.au/webapps/lams-plglamscontent-bb_bb60/UserData?uid=%username%&ts=%timestamp%&hash=%hash%";
+ // where %username%, %timestamp% and %hash% will be replaced with their real values
try {
String userDataCallbackUrl = serverMap.getUserinfoUrl();
String timestamp = Long.toString(new Date().getTime());
String hash = hash(serverMap, extUsername, timestamp);
String encodedExtUsername = URLEncoder.encode(extUsername, "UTF8");
- //set the values for the parameters
- userDataCallbackUrl = userDataCallbackUrl.replaceAll("%username%", encodedExtUsername).replaceAll(
- "%timestamp%", timestamp).replaceAll("%hash%", hash);
+ // set the values for the parameters
+ userDataCallbackUrl = userDataCallbackUrl.replaceAll("%username%", encodedExtUsername)
+ .replaceAll("%timestamp%", timestamp).replaceAll("%hash%", hash);
log.debug(userDataCallbackUrl);
URL url = new URL(userDataCallbackUrl);
URLConnection conn = url.openConnection();
@@ -386,27 +394,27 @@
Map properties = new HashMap();
properties.put("tool.toolSignature", toolSig);
- return (List)service.findByProperties(ExtServerToolAdapterMap.class, properties);
+ return (List) service.findByProperties(ExtServerToolAdapterMap.class, properties);
}
-
+
@SuppressWarnings("unchecked")
- public ExtServerToolAdapterMap getMappedServer(String serverId, String toolSig){
+ public ExtServerToolAdapterMap getMappedServer(String serverId, String toolSig) {
Map properties = new HashMap();
properties.put("tool.toolSignature", toolSig);
properties.put("extServer.serverid", serverId);
List ret = service.findByProperties(ExtServerToolAdapterMap.class, properties);
- if (ret != null && ret.size() > 0) {
- return (ExtServerToolAdapterMap)ret.get(0);
+ if (ret != null && ret.size() > 0) {
+ return (ExtServerToolAdapterMap) ret.get(0);
} else {
return null;
}
}
-
- public void saveExtServerToolAdapterMap(ExtServerToolAdapterMap map){
+
+ public void saveExtServerToolAdapterMap(ExtServerToolAdapterMap map) {
service.save(map);
}
-
- public void deleteExtServerToolAdapterMap(ExtServerToolAdapterMap map){
+
+ public void deleteExtServerToolAdapterMap(ExtServerToolAdapterMap map) {
service.delete(map);
}
@@ -417,20 +425,20 @@
public ExtServerOrgMap getExtServerOrgMap(Integer sid) {
return (ExtServerOrgMap) service.findById(ExtServerOrgMap.class, sid);
}
-
+
public void createExtServerLessonMap(Long lessonId, ExtServerOrgMap extServer) {
ExtServerLessonMap map = new ExtServerLessonMap();
map.setLessonId(lessonId);
map.setExtServer(extServer);
service.save(map);
}
-
+
public String getLessonFinishCallbackUrl(User user, Lesson lesson) throws UnsupportedEncodingException {
// the callback url must contain %username%, %lessonid%, %timestamp% and %hash% eg:
// "http://test100.ics.mq.edu.au/webapps/lams-plglamscontent-bb_bb60/UserData?uid=%username%&lessonid=%lessonid%&ts=%timestamp%&hash=%hash%";
// where %username%, %lessonid%, %timestamp% and %hash% will be replaced with their real values
String lessonFinishCallbackUrl = null;
-
+
if (lesson != null) {
Long lessonId = lesson.getLessonId();
ExtServerLessonMap extServerLesson = getExtServerLessonMap(lessonId);
@@ -457,9 +465,9 @@
}
}
- return lessonFinishCallbackUrl;
+ return lessonFinishCallbackUrl;
}
-
+
private ExtServerLessonMap getExtServerLessonMap(Long lessonId) {
List list = service.findByProperty(ExtServerLessonMap.class, "lessonId", lessonId);
if (list == null || list.size() == 0) {
@@ -468,7 +476,7 @@
return (ExtServerLessonMap) list.get(0);
}
}
-
+
private ExtUserUseridMap getExistingExtUserUseridMap(ExtServerOrgMap serverMap, User user) {
Map properties = new HashMap();
properties.put("extServerOrgMap.sid", serverMap.getSid());