def lti_tool(request): key = request.POST['oauth_consumer_key'] if key: secret = oauth_creds[key] if secret: tp = DjangoToolProvider(key, secret, request.POST) else: tp = DjangoToolProvider(None, None, request.POST) tp.lti_msg = "Your consumer didn't used a recognized key" tp.lti_errorlog = "You did it wrong!" error_temp = get_template("error.html") context_data = Context({'message': 'Consumer key not recognized', 'params': request.POST}) error_html = error_temp.render(context_data) return HttpResponse(error_html) else: key_error_temp = get_template("error.html") key_error_html = key_error_temp.render(Context({'message': 'Consumer key not recognized'})) return HttpResponse(key_error_html) if not tp.is_valid_request(request): sigerror_temp = get_template("error.html") context_data = Context({'message': 'The OAuth signature is invalid', 'params': request.POST}) sigerror_html = sigerror_temp.render(context_data) return HttpResponse(sigerror_html) request.session['launch_params'] = tp.to_params() userid = request.POST['user_id'] temp = get_template('assessment.html') html = temp.render(Context({'userid': userid})) return HttpResponse(html)
def ltilaunch(request): consumer_key = request.POST.get('oauth_consumer_key') if consumer_key: consumer = LTIConsumer.objects.get(consumer_key=consumer_key) else: return HttpResponse('oauth_consumer_key must be supplied', status=403) tool_provider = DjangoToolProvider(consumer_key, consumer.secret, request.POST) if not tool_provider.is_launch_request(): return HttpResponse('Not a launch request', status=403) lti_params = tool_provider.to_params() # Set the session stuff in here. request.session['user_id'] = lti_params['user_id'] course_id = str(lti_params['context_id']) request.session['course_id'] = course_id request.session['course_title'] = lti_params['context_title'] return_url = lti_params.get('launch_presentation_return_url') # This is FutureLearn specific if return_url and 'www.futurelearn.com' in return_url: parts = urlparse(lti_params['launch_presentation_return_url']).path.split('/') if len(parts) >= 4: chosen_topic = parts[2] request.session['chosen_topic'] = 'Ebola' if 'sandpit' in course_id else chosen_topic request.session['course_run'] = int(parts[3]) else: # Test data. request.session['chosen_topic'] = 'dyslexia' request.session['course_run'] = 1 _log_launch(lti_params['user_id'],lti_params['context_id'], lti_params.get('launch_presentation_return_url')) return results(request)
def _get_lti_parameters_from_request(cls, request): provider = DjangoToolProvider(settings.LTI_CLIENT_KEY, settings.LTI_CLIENT_SECRET, request.POST) provider.valid_request(request) return provider.to_params()
def _get_lti_parameters_from_request(cls, request): provider = DjangoToolProvider(settings.LTI_CLIENT_KEY, settings.LTI_CLIENT_SECRET, request.POST) provider.valid_request(request) return provider.to_params()