Ensure to clear LTI session once the score is submitted
This commit is contained in:
@ -26,11 +26,10 @@ module Lti
|
|||||||
session.delete(:embed_options)
|
session.delete(:embed_options)
|
||||||
session.delete(:lti_exercise_id)
|
session.delete(:lti_exercise_id)
|
||||||
session.delete(:lti_parameters_id)
|
session.delete(:lti_parameters_id)
|
||||||
else
|
|
||||||
LtiParameter.where(consumers_id: consumer_id,
|
|
||||||
external_users_id: user_id,
|
|
||||||
exercises_id: exercise_id).destroy_all
|
|
||||||
end
|
end
|
||||||
|
LtiParameter.where(consumers_id: consumer_id,
|
||||||
|
external_users_id: user_id,
|
||||||
|
exercises_id: exercise_id).destroy_all
|
||||||
end
|
end
|
||||||
|
|
||||||
private :clear_lti_session_data
|
private :clear_lti_session_data
|
||||||
|
@ -343,6 +343,7 @@ class ExercisesController < ApplicationController
|
|||||||
submission_id: @submission.id,
|
submission_id: @submission.id,
|
||||||
url: consumer_return_url(build_tool_provider(consumer: Consumer.find_by(id: session[:consumer_id]),
|
url: consumer_return_url(build_tool_provider(consumer: Consumer.find_by(id: session[:consumer_id]),
|
||||||
parameters: lti_parameter.lti_parameters)))
|
parameters: lti_parameter.lti_parameters)))
|
||||||
|
clear_lti_session_data(@submission.exercise_id, @submission.user_id, session[:consumer_id])
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { redirect_to(path) }
|
format.html { redirect_to(path) }
|
||||||
format.json { render(json: {redirect: path}) }
|
format.json { render(json: {redirect: path}) }
|
||||||
@ -479,6 +480,7 @@ class ExercisesController < ApplicationController
|
|||||||
# redirect 10 percent pseudorandomly to the feedback page
|
# redirect 10 percent pseudorandomly to the feedback page
|
||||||
if current_user.respond_to? :external_id
|
if current_user.respond_to? :external_id
|
||||||
if @submission.redirect_to_feedback? && !@embed_options[:disable_redirect_to_feedback]
|
if @submission.redirect_to_feedback? && !@embed_options[:disable_redirect_to_feedback]
|
||||||
|
clear_lti_session_data(@submission.exercise_id, @submission.user_id, session[:consumer_id])
|
||||||
redirect_to_user_feedback
|
redirect_to_user_feedback
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -489,6 +491,7 @@ class ExercisesController < ApplicationController
|
|||||||
flash[:notice] = I18n.t('exercises.submit.full_score_redirect_to_own_rfc')
|
flash[:notice] = I18n.t('exercises.submit.full_score_redirect_to_own_rfc')
|
||||||
flash.keep(:notice)
|
flash.keep(:notice)
|
||||||
|
|
||||||
|
clear_lti_session_data(@submission.exercise_id, @submission.user_id, session[:consumer_id])
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { redirect_to(rfc) }
|
format.html { redirect_to(rfc) }
|
||||||
format.json { render(json: {redirect: url_for(rfc)}) }
|
format.json { render(json: {redirect: url_for(rfc)}) }
|
||||||
@ -506,6 +509,7 @@ class ExercisesController < ApplicationController
|
|||||||
# increase counter 'times_featured' in rfc
|
# increase counter 'times_featured' in rfc
|
||||||
rfc.increment!(:times_featured)
|
rfc.increment!(:times_featured)
|
||||||
|
|
||||||
|
clear_lti_session_data(@submission.exercise_id, @submission.user_id, session[:consumer_id])
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html {redirect_to(rfc)}
|
format.html {redirect_to(rfc)}
|
||||||
format.json {render(json: {redirect: url_for(rfc)})}
|
format.json {render(json: {redirect: url_for(rfc)})}
|
||||||
@ -516,6 +520,7 @@ class ExercisesController < ApplicationController
|
|||||||
else
|
else
|
||||||
# redirect to feedback page if score is less than 100 percent
|
# redirect to feedback page if score is less than 100 percent
|
||||||
if @exercise.needs_more_feedback? && !@embed_options[:disable_redirect_to_feedback]
|
if @exercise.needs_more_feedback? && !@embed_options[:disable_redirect_to_feedback]
|
||||||
|
clear_lti_session_data(@submission.exercise_id, @submission.user_id, session[:consumer_id])
|
||||||
redirect_to_user_feedback
|
redirect_to_user_feedback
|
||||||
else
|
else
|
||||||
redirect_to_lti_return_path
|
redirect_to_lti_return_path
|
||||||
|
Reference in New Issue
Block a user