Index: lams_central/conf/xdoclet/filter-mappings.xml
===================================================================
diff -u -r1983757336d2535cdd21fd88ec30dcaefb571601 -ra985e29fc921fabc19dfe1199a99e21a696c5ba4
--- lams_central/conf/xdoclet/filter-mappings.xml (.../filter-mappings.xml) (revision 1983757336d2535cdd21fd88ec30dcaefb571601)
+++ lams_central/conf/xdoclet/filter-mappings.xml (.../filter-mappings.xml) (revision a985e29fc921fabc19dfe1199a99e21a696c5ba4)
@@ -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
===================================================================
diff -u -r1983757336d2535cdd21fd88ec30dcaefb571601 -ra985e29fc921fabc19dfe1199a99e21a696c5ba4
--- lams_central/conf/xdoclet/servlet-mappings.xml (.../servlet-mappings.xml) (revision 1983757336d2535cdd21fd88ec30dcaefb571601)
+++ lams_central/conf/xdoclet/servlet-mappings.xml (.../servlet-mappings.xml) (revision a985e29fc921fabc19dfe1199a99e21a696c5ba4)
@@ -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
===================================================================
diff -u -r53203ceb98ad6035820cb68d1eddce9e2cfaae99 -ra985e29fc921fabc19dfe1199a99e21a696c5ba4
--- lams_central/conf/xdoclet/servlets.xml (.../servlets.xml) (revision 53203ceb98ad6035820cb68d1eddce9e2cfaae99)
+++ lams_central/conf/xdoclet/servlets.xml (.../servlets.xml) (revision a985e29fc921fabc19dfe1199a99e21a696c5ba4)
@@ -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
===================================================================
diff -u -r91b5a45ed577ce52a8447ffaec3e6b09be082a0f -ra985e29fc921fabc19dfe1199a99e21a696c5ba4
--- lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java (.../CentralConstants.java) (revision 91b5a45ed577ce52a8447ffaec3e6b09be082a0f)
+++ lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java (.../CentralConstants.java) (revision a985e29fc921fabc19dfe1199a99e21a696c5ba4)
@@ -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
===================================================================
diff -u -r91cfe0765e0d4dfca23f34773d96d17cc4a481a3 -ra985e29fc921fabc19dfe1199a99e21a696c5ba4
--- lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java (.../LoginRequestServlet.java) (revision 91cfe0765e0d4dfca23f34773d96d17cc4a481a3)
+++ lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java (.../LoginRequestServlet.java) (revision a985e29fc921fabc19dfe1199a99e21a696c5ba4)
@@ -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
===================================================================
diff -u -r109a77d78a087aeb8b9418b2a49f943597097f06 -ra985e29fc921fabc19dfe1199a99e21a696c5ba4
--- lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java (.../IIntegrationService.java) (revision 109a77d78a087aeb8b9418b2a49f943597097f06)
+++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java (.../IIntegrationService.java) (revision a985e29fc921fabc19dfe1199a99e21a696c5ba4)
@@ -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
===================================================================
diff -u -r192e8bed06df5a995b34c4e94023cbc699b341e5 -ra985e29fc921fabc19dfe1199a99e21a696c5ba4
--- lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision 192e8bed06df5a995b34c4e94023cbc699b341e5)
+++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision a985e29fc921fabc19dfe1199a99e21a696c5ba4)
@@ -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());