Index: lams_bb_integration/.classpath
===================================================================
diff -u -r7313b5c073ae563d642a7ef9a2acec81caa2a8ea -r7b8276acaecb9871b6e169f3376c4ebcddeceb67
--- lams_bb_integration/.classpath (.../.classpath) (revision 7313b5c073ae563d642a7ef9a2acec81caa2a8ea)
+++ lams_bb_integration/.classpath (.../.classpath) (revision 7b8276acaecb9871b6e169f3376c4ebcddeceb67)
@@ -12,5 +12,6 @@
+
Index: lams_bb_integration/RELEASE_NOTES.TXT
===================================================================
diff -u -ra08111337692e8715b306e2a11218eb0b0b06e5b -r7b8276acaecb9871b6e169f3376c4ebcddeceb67
--- lams_bb_integration/RELEASE_NOTES.TXT (.../RELEASE_NOTES.TXT) (revision a08111337692e8715b306e2a11218eb0b0b06e5b)
+++ lams_bb_integration/RELEASE_NOTES.TXT (.../RELEASE_NOTES.TXT) (revision 7b8276acaecb9871b6e169f3376c4ebcddeceb67)
@@ -100,3 +100,7 @@
====================
* LDEV-3526: Switch webservice calls to POST.
* LDEV-3456: Adding support for a type field to categorise designs.
+
+1.2.14 Release Fixes
+====================
+* LDEV-3526: Adding further POST support.
Index: lams_bb_integration/WEB-INF/bb-manifest.xml
===================================================================
diff -u -ra08111337692e8715b306e2a11218eb0b0b06e5b -r7b8276acaecb9871b6e169f3376c4ebcddeceb67
--- lams_bb_integration/WEB-INF/bb-manifest.xml (.../bb-manifest.xml) (revision a08111337692e8715b306e2a11218eb0b0b06e5b)
+++ lams_bb_integration/WEB-INF/bb-manifest.xml (.../bb-manifest.xml) (revision 7b8276acaecb9871b6e169f3376c4ebcddeceb67)
@@ -5,7 +5,7 @@
-
+
Index: lams_bb_integration/build.xml
===================================================================
diff -u -ra08111337692e8715b306e2a11218eb0b0b06e5b -r7b8276acaecb9871b6e169f3376c4ebcddeceb67
--- lams_bb_integration/build.xml (.../build.xml) (revision a08111337692e8715b306e2a11218eb0b0b06e5b)
+++ lams_bb_integration/build.xml (.../build.xml) (revision 7b8276acaecb9871b6e169f3376c4ebcddeceb67)
@@ -2,7 +2,7 @@
-
+
Index: lams_bb_integration/src/org/lamsfoundation/ld/integration/blackboard/LamsLearningDesignDeleteServlet.java
===================================================================
diff -u -r8f8f4b259f306bfb71338b46e3958bae39ee073b -r7b8276acaecb9871b6e169f3376c4ebcddeceb67
--- lams_bb_integration/src/org/lamsfoundation/ld/integration/blackboard/LamsLearningDesignDeleteServlet.java (.../LamsLearningDesignDeleteServlet.java) (revision 8f8f4b259f306bfb71338b46e3958bae39ee073b)
+++ lams_bb_integration/src/org/lamsfoundation/ld/integration/blackboard/LamsLearningDesignDeleteServlet.java (.../LamsLearningDesignDeleteServlet.java) (revision 7b8276acaecb9871b6e169f3376c4ebcddeceb67)
@@ -45,7 +45,14 @@
private static final long serialVersionUID = -351131323404991332L;
public void doGet(HttpServletRequest request, HttpServletResponse response) {
-
+ process(request, response);
+ }
+
+ public void doPost(HttpServletRequest request, HttpServletResponse response) {
+ process(request, response);
+ }
+
+ protected void process(HttpServletRequest request, HttpServletResponse response) {
String serverAddr = LamsSecurityUtil.getServerAddress();
String serverId = LamsSecurityUtil.getServerID();
Index: lams_bb_integration/src/org/lamsfoundation/ld/integration/blackboard/LamsLearningDesignServlet.java
===================================================================
diff -u -ra08111337692e8715b306e2a11218eb0b0b06e5b -r7b8276acaecb9871b6e169f3376c4ebcddeceb67
--- lams_bb_integration/src/org/lamsfoundation/ld/integration/blackboard/LamsLearningDesignServlet.java (.../LamsLearningDesignServlet.java) (revision a08111337692e8715b306e2a11218eb0b0b06e5b)
+++ lams_bb_integration/src/org/lamsfoundation/ld/integration/blackboard/LamsLearningDesignServlet.java (.../LamsLearningDesignServlet.java) (revision 7b8276acaecb9871b6e169f3376c4ebcddeceb67)
@@ -32,10 +32,13 @@
import org.lamsfoundation.ld.integration.Constants;
import blackboard.base.InitializationException;
+import blackboard.data.user.User;
import blackboard.platform.BbServiceException;
import blackboard.platform.BbServiceManager;
import blackboard.platform.context.Context;
import blackboard.platform.context.ContextManager;
+import blackboard.platform.context.ContextManagerFactory;
+import blackboard.platform.context.UserContext;
/**
* Makes a call to LAMS server to get learning designs and returns it.
@@ -45,7 +48,14 @@
private static final long serialVersionUID = -351131323404991332L;
public void doGet(HttpServletRequest request, HttpServletResponse response) {
-
+ process(request, response);
+ }
+
+ public void doPost(HttpServletRequest request, HttpServletResponse response) {
+ process(request, response);
+ }
+
+ protected void process(HttpServletRequest request, HttpServletResponse response) {
String serverAddr = LamsSecurityUtil.getServerAddress();
String serverId = LamsSecurityUtil.getServerID();
@@ -75,10 +85,30 @@
ContextManager ctxMgr = null;
Context ctx = null;
try {
- // get Blackboard context
+ // In some instances of calling this servlet, the user is missing from the context. Try a few different ways to ensure we have the user!
+ User user = null;
+
ctxMgr = (ContextManager) BbServiceManager.lookupService(ContextManager.class);
ctx = ctxMgr.setContext(request);
+ if ( ctx != null ) {
+ user = ctx.getUser();
+ }
+ if ( user == null ) {
+ ctxMgr = ContextManagerFactory.getInstance();
+ ctx=ctxMgr.setContext(request);
+ if ( ctx != null ) {
+ user = ctx.getUser();
+ }
+ }
+ if ( user == null ) {
+ ctx = ContextManagerFactory.getInstance().getContext();
+ if ( ctx !=null )
+ user = ctx.getUser();
+ }
+ if ( user == null )
+ throw new RuntimeException("Unable to get user from context: cannot proceed to get Learning Designs");
+ // we have a good context, now get on with the task.
String method = usePaging ? "getPagedHomeLearningDesignsJSON" : "getLearningDesignsJSON";
String learningDesigns = LamsSecurityUtil.getLearningDesigns(ctx, courseId, folderId, method, type, search, page, size, sortName, sortDate);
@@ -98,5 +128,6 @@
}
}
}
+
}
Index: lams_bb_integration/src/org/lamsfoundation/ld/integration/blackboard/RenderDesignImageServlet.java
===================================================================
diff -u -rf6a30da76fc0043c9eebf56c23c7f35ff7afaeeb -r7b8276acaecb9871b6e169f3376c4ebcddeceb67
--- lams_bb_integration/src/org/lamsfoundation/ld/integration/blackboard/RenderDesignImageServlet.java (.../RenderDesignImageServlet.java) (revision f6a30da76fc0043c9eebf56c23c7f35ff7afaeeb)
+++ lams_bb_integration/src/org/lamsfoundation/ld/integration/blackboard/RenderDesignImageServlet.java (.../RenderDesignImageServlet.java) (revision 7b8276acaecb9871b6e169f3376c4ebcddeceb67)
@@ -46,6 +46,14 @@
private static final long serialVersionUID = -351131323404991332L;
public void doGet(HttpServletRequest request, HttpServletResponse response) {
+ process(request, response);
+ }
+
+ public void doPost(HttpServletRequest request, HttpServletResponse response) {
+ process(request, response);
+ }
+
+ public void process(HttpServletRequest request, HttpServletResponse response) {
String strLearningDesignId = request.getParameter("sequence_id");
if ( strLearningDesignId != null ) {
Index: lams_bb_integration/src/org/lamsfoundation/ld/integration/blackboard/StartLessonServlet.java
===================================================================
diff -u -rfcb7e9d6a6a3e5167a10017ade80c86a67a122e6 -r7b8276acaecb9871b6e169f3376c4ebcddeceb67
--- lams_bb_integration/src/org/lamsfoundation/ld/integration/blackboard/StartLessonServlet.java (.../StartLessonServlet.java) (revision fcb7e9d6a6a3e5167a10017ade80c86a67a122e6)
+++ lams_bb_integration/src/org/lamsfoundation/ld/integration/blackboard/StartLessonServlet.java (.../StartLessonServlet.java) (revision 7b8276acaecb9871b6e169f3376c4ebcddeceb67)
@@ -33,16 +33,20 @@
import org.lamsfoundation.ld.util.LineitemUtil;
import blackboard.base.FormattedText;
+import blackboard.base.InitializationException;
import blackboard.data.content.Content;
import blackboard.data.content.CourseDocument;
import blackboard.data.course.Course;
+import blackboard.data.user.User;
import blackboard.persist.BbPersistenceManager;
import blackboard.persist.Id;
import blackboard.persist.PkId;
import blackboard.persist.content.ContentDbPersister;
+import blackboard.platform.BbServiceException;
import blackboard.platform.BbServiceManager;
import blackboard.platform.context.Context;
import blackboard.platform.context.ContextManager;
+import blackboard.platform.context.ContextManagerFactory;
import blackboard.platform.plugin.PlugInException;
import blackboard.platform.plugin.PlugInUtil;
import blackboard.portal.data.ExtraInfo;
@@ -60,13 +64,42 @@
private static Logger logger = Logger.getLogger(StartLessonServlet.class);
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ process(request, response);
+ }
+ public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ process(request, response);
+ }
+
+ protected void process(HttpServletRequest request, HttpServletResponse response) throws IOException {
+
ContextManager ctxMgr = null;
Context ctx = null;
try {
- // get Blackboard context
+ // In some instances of calling this servlet, the user is missing from the context. Try a few different ways to ensure we have the user!
+ User user = null;
+
ctxMgr = (ContextManager) BbServiceManager.lookupService(ContextManager.class);
ctx = ctxMgr.setContext(request);
+ if ( ctx != null ) {
+ user = ctx.getUser();
+ }
+ if ( user == null ) {
+ ctxMgr = ContextManagerFactory.getInstance();
+ ctx=ctxMgr.setContext(request);
+ if ( ctx != null ) {
+ user = ctx.getUser();
+ }
+ }
+ if ( user == null ) {
+ ctx = ContextManagerFactory.getInstance().getContext();
+ if ( ctx !=null )
+ user = ctx.getUser();
+ }
+ if ( user == null )
+ throw new RuntimeException("Unable to get user from context: cannot proceed to get Learning Designs");
+
+ // we have a good context, now get on with the task.
// Set the new LAMS Lesson Content Object
CourseDocument bbContent = new blackboard.data.content.CourseDocument();
@@ -232,5 +265,32 @@
return value != null ? value.trim() : "";
}
+ // In some instances of calling this servlet, the user is missing from the context. Try a few different ways to ensure we have the user!
+ private Context getContext(HttpServletRequest request) throws InitializationException, BbServiceException {
+
+ User user = null;
+
+ ContextManager ctxMgr = (ContextManager) BbServiceManager.lookupService(ContextManager.class);
+ Context ctx = ctxMgr.setContext(request);
+ if ( ctx != null ) {
+ user = ctx.getUser();
+ }
+ if ( user == null ) {
+ final ContextManager contextManagerViaFactory = ContextManagerFactory.getInstance();
+ ctx=contextManagerViaFactory.setContext(request);
+ if ( ctx != null ) {
+ user = ctx.getUser();
+ }
+ }
+ if ( user == null ) {
+ ctx = ContextManagerFactory.getInstance().getContext();
+ if ( ctx !=null )
+ user = ctx.getUser();
+ }
+ if ( user != null )
+ return ctx;
+ else
+ throw new RuntimeException("Unable to get user from context: cannot proceed to get Learning Designs");
+ }
}