Index: lams_bb_integration/web/modules/learnermonitor.jsp =================================================================== diff -u -ra930db13eb2e9bd50802f65516c169da454e9030 -re90547eeb5330fd68c424212233b1689f25c71ce --- lams_bb_integration/web/modules/learnermonitor.jsp (.../learnermonitor.jsp) (revision a930db13eb2e9bd50802f65516c169da454e9030) +++ lams_bb_integration/web/modules/learnermonitor.jsp (.../learnermonitor.jsp) (revision e90547eeb5330fd68c424212233b1689f25c71ce) @@ -1,196 +1,168 @@ -<%@ page import="java.util.*, - java.util.Date, - java.text.SimpleDateFormat, - blackboard.data.*, - blackboard.persist.*, - blackboard.data.course.*, - blackboard.data.user.*, - blackboard.persist.course.*, - blackboard.data.content.*, - blackboard.persist.content.*, - blackboard.persist.navigation.CourseTocDbLoader, - blackboard.db.*, - blackboard.base.*, - org.lamsfoundation.ld.integration.blackboard.LamsSecurityUtil, - blackboard.platform.*, - blackboard.platform.plugin.*" - errorPage="/error.jsp" -%> -<%@ taglib uri="/bbUI" prefix="bbUI"%> -<%@ taglib uri="/bbData" prefix="bbData"%> - +<%-- + Original Version: 2007 LAMS Foundation + Updated for Blackboard 9.1 SP6 (including new bbNG tag library) 2011 + Richard Stals (www.stals.com.au) + Edith Cowan University, Western Australia +--%> +<%-- + Handle LAMS Lesson Access + Students - access lesson only + Staff - additionally access the Lesson Monitor +--%> +<%@ page import="java.util.*"%> +<%@ page import="java.util.Date"%> +<%@ page import="java.text.SimpleDateFormat"%> +<%@ page import="blackboard.data.*"%> +<%@ page import="blackboard.persist.*"%> +<%@ page import="blackboard.data.course.*"%> +<%@ page import="blackboard.data.user.*"%> +<%@ page import="blackboard.persist.course.*"%> +<%@ page import="blackboard.data.content.*"%> +<%@ page import="blackboard.persist.content.*"%> +<%@ page import="blackboard.persist.navigation.CourseTocDbLoader"%> +<%@ page import="blackboard.db.*"%> +<%@ page import="blackboard.base.*"%> +<%@ page import="blackboard.platform.*"%> +<%@ page import="blackboard.platform.plugin.*"%> +<%@ page import="org.lamsfoundation.ld.integration.blackboard.LamsSecurityUtil"%> +<%@ page errorPage="/error.jsp"%> +<%@ taglib uri="/bbNG" prefix="bbNG"%> + <% - String lsid = request.getParameter("lsid"); - String learnerUrl = LamsSecurityUtil.generateRequestURL(ctx, "learner") + "&lsid=" + lsid; - String monitorUrl = LamsSecurityUtil.generateRequestURL(ctx, "monitor") + "&lsid=" + lsid; - String liveEditUrl = LamsSecurityUtil.generateRequestURL(ctx, "author"); + // SECURITY! + // Authorise current user for Course Access (automatic redirect) + try{ + if (!PlugInUtil.authorizeForCourse(request, response)) + return; + } catch(PlugInException e) { + throw new RuntimeException(e); + } + + // Get the LAMS access URLs + String lsid = request.getParameter("lsid"); + String learnerUrl = LamsSecurityUtil.generateRequestURL(ctx, "learner") + "&lsid=" + lsid; + String monitorUrl = LamsSecurityUtil.generateRequestURL(ctx, "monitor") + "&lsid=" + lsid; + String liveEditUrl = LamsSecurityUtil.generateRequestURL(ctx, "author"); -// add port to the url if the port is in the blackboard url. - int bbport = request.getServerPort(); - String bbportstr = bbport != 0 ? ":" + bbport : ""; - - //String contentUrl = LamsSecurityUtil.generateRequestURL(ctx, "learner") + "&lsid=" + learningSessionId; - String updateGradesUrl = "\"" + request.getScheme() - + "://" + - request.getServerName() + - bbportstr + - request.getContextPath() + - "/modules/updateGrades.jsp?lsid=" + lsid + - "&course_id=" + request.getParameter("course_id") + - "&lineitem_id=" + request.getParameter("lineitem_id") - + "\""; - + // Get Course ID and Session User ID + BbPersistenceManager bbPm = BbServiceManager.getPersistenceService().getDbPersistenceManager(); + String course_idstr = request.getParameter("course_id"); + Id course_id = bbPm.generateId(Course.DATA_TYPE, course_idstr); + User sessionUser = ctx.getUser(); + Id sessionUserId = sessionUser.getId(); - String course_idstr = request.getParameter("course_id"); + // Get the membership data to determine the User's Role + CourseMembership courseMembership = null; + CourseMembership.Role courseRole = null; + boolean isActive = false; + + CourseMembershipDbLoader sessionCourseMembershipLoader = (CourseMembershipDbLoader) bbPm.getLoader(CourseMembershipDbLoader.TYPE); + try { + courseMembership = sessionCourseMembershipLoader.loadByCourseAndUserId(course_id, sessionUserId); + courseRole = courseMembership.getRole(); + isActive = courseMembership.getIsAvailable(); + } catch (KeyNotFoundException e) { + // There is no membership record. + e.printStackTrace(); + } catch (PersistenceException pe) { + // There is no membership record. + pe.printStackTrace(); + } - BbPersistenceManager bbPm = BbServiceManager.getPersistenceService().getDbPersistenceManager(); - Id course_id = bbPm.generateId(Course.COURSE_DATA_TYPE, course_idstr); - User sessionUser = ctx.getUser(); - Id sessionUserId = sessionUser.getId(); - - - //get the membership data to determine the User's Role - CourseMembership courseMembership = null; - CourseMembership.Role courseRole = null; - CourseMembershipDbLoader sessionCourseMembershipLoader = - (CourseMembershipDbLoader) bbPm.getLoader(CourseMembershipDbLoader.TYPE); - try - { - courseMembership = sessionCourseMembershipLoader.loadByCourseAndUserId(course_id, sessionUserId); - courseRole = courseMembership.getRole(); - } - catch (KeyNotFoundException e) - { - // There is no membership record. - e.printStackTrace(); - - } - catch (PersistenceException pe) - { - // There is no membership record. - pe.printStackTrace(); - } - - - String instructorstr="hidden"; - if (courseRole.equals(CourseMembership.Role.INSTRUCTOR)||courseRole.equals(CourseMembership.Role.TEACHING_ASSISTANT)) - { - // instructor or assistant - // can choose to redirect to monitor or learner - instructorstr="button"; - } - else if (!courseRole.equals(CourseMembership.Role.STUDENT)) - { - - response.sendRedirect("notAllowed.jsp"); - } + // Is the User an Instructor of Teaching Assistant + boolean instructorstr=false; + if (courseRole.equals(CourseMembership.Role.INSTRUCTOR)||courseRole.equals(CourseMembership.Role.TEACHING_ASSISTANT)) { + instructorstr=true; + } else if (!courseRole.equals(CourseMembership.Role.STUDENT)) { + // The user is not an Instructor, Teaching Assistant or Student - Access Denied + response.sendRedirect("notAllowed.jsp"); + } + + // Are they active in the course? If not let Blackboard handle the redirect + if (!isActive) { + PlugInUtil.sendAccessDeniedRedirect(request, response); + } %> - - - - - + <%-- Breadcrumbs --%> + + + + <%-- Page Header --%> + + + + <%-- Action Control Bar --%> + + <%-- Access the Lesson as a Learner --%> + <% if(instructorstr) { %> + <%-- Access the Monitor --%> + <% } %> + <%-- Cancel (Go Back) --%> + - - - LAMS Options - - -LAMS Options - - -
-
- Please Choose an Option -

-      - - - - - -
- -
-
+ + + + + \ No newline at end of file