Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
 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()
Ejemplo n.º 4
0
 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()