Ejemplo n.º 1
0
    def dispatch(self, request, *args, **kwargs):
        lti = LTI(self.request_type, self.role_type)

        # validate the user via oauth
        user = authenticate(request=request, lti=lti)
        if user is None:
            lti.clear_session(request)
            return render_to_response(
                'lti_auth/fail_auth.html', {},
                context_instance=RequestContext(request))

        # check if course is configured
        try:
            ctx = lti.custom_course_context()
        except (KeyError, ValueError, LTICourseContext.DoesNotExist):
            lti.clear_session(request)
            return render_to_response(
                'lti_auth/fail_course_configuration.html', {},
                context_instance=RequestContext(request))

        # add user to the course
        self.join_groups(lti, ctx, user)

        # login
        login(request, user)

        return super(LTIAuthMixin, self).dispatch(request, *args, **kwargs)
Ejemplo n.º 2
0
    def test_custom_course_context(self):
        lti = LTI('initial', 'any')

        with self.assertRaises(KeyError):
            lti.custom_course_context()

        lti.lti_params = BASE_LTI_PARAMS
        lti.lti_params['custom_course_context'] = 434
        with self.assertRaises(LTICourseContext.DoesNotExist):
            lti.custom_course_context()

        ctx = LTICourseContextFactory()
        lti.lti_params['custom_course_context'] = 'abc'
        with self.assertRaises(ValueError):
            lti.custom_course_context()

        lti.lti_params['custom_course_context'] = ctx.uuid
        with self.assertRaises(LTICourseContext.DoesNotExist):
            lti.custom_course_context()

        ctx.enable = True
        ctx.save()
        self.assertEquals(lti.custom_course_context(), ctx)