def lti_tool(): key = request.form.get('oauth_consumer_key') if key: secret = oauth_creds.get(key) if secret: tool_provider = ToolProvider(key, secret, request.form) else: tool_provider = ToolProvider(None, None, request.form) tool_provider.lti_msg = 'Your consumer didn\'t use a recognized key' tool_provider.lti_errorlog = 'You did it wrong!' return render_template('error.html', message = 'Consumer key wasn\'t recognized', params = request.form) else: return render_template('error.html', message='No consumer key') if not tool_provider.is_launch_request(): print 'invalid request' return render_template('error.html', message='OAuth signature was invalid', params=request.form) if time() - int(tool_provider.oauth_timestamp) > 60*60: print 'timed out' return render_template('error.html', message='Your request is too old.') if was_nonce_used_in_last_x_minutes(tool_provider.oauth_nonce, 60): print 'nonce error' return render_template('error.html', message='Why are you reusing the nonce?') session['launch_params'] = tool_provider.to_params() username = tool_provider.username('Dude') if tool_provider.is_outcome_service(): return render_template('assessment.html', username=username) else: tool_provider.lti_msg = 'This tool does not return a score.' return render_template('boring_tool', username=username, student=tool_provider.is_student(), instructor=tool_provider.is_teacher(), roles=tool_provider.roles, launch_presentation_return_url=tool_provider.launch_presentation_return_url)