diff --git a/app/controllers/concerns/lti.rb b/app/controllers/concerns/lti.rb index 0d07360f..7cb35046 100644 --- a/app/controllers/concerns/lti.rb +++ b/app/controllers/concerns/lti.rb @@ -26,11 +26,10 @@ module Lti session.delete(:embed_options) session.delete(:lti_exercise_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 + LtiParameter.where(consumers_id: consumer_id, + external_users_id: user_id, + exercises_id: exercise_id).destroy_all end private :clear_lti_session_data diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 1e4c33c0..8caed7fd 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -343,6 +343,7 @@ class ExercisesController < ApplicationController submission_id: @submission.id, url: consumer_return_url(build_tool_provider(consumer: Consumer.find_by(id: session[:consumer_id]), parameters: lti_parameter.lti_parameters))) + clear_lti_session_data(@submission.exercise_id, @submission.user_id, session[:consumer_id]) respond_to do |format| format.html { redirect_to(path) } format.json { render(json: {redirect: path}) } @@ -479,6 +480,7 @@ class ExercisesController < ApplicationController # redirect 10 percent pseudorandomly to the feedback page if current_user.respond_to? :external_id 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 return end @@ -489,6 +491,7 @@ class ExercisesController < ApplicationController flash[:notice] = I18n.t('exercises.submit.full_score_redirect_to_own_rfc') flash.keep(:notice) + clear_lti_session_data(@submission.exercise_id, @submission.user_id, session[:consumer_id]) respond_to do |format| format.html { redirect_to(rfc) } format.json { render(json: {redirect: url_for(rfc)}) } @@ -506,6 +509,7 @@ class ExercisesController < ApplicationController # increase counter 'times_featured' in rfc rfc.increment!(:times_featured) + clear_lti_session_data(@submission.exercise_id, @submission.user_id, session[:consumer_id]) respond_to do |format| format.html {redirect_to(rfc)} format.json {render(json: {redirect: url_for(rfc)})} @@ -516,6 +520,7 @@ class ExercisesController < ApplicationController else # redirect to feedback page if score is less than 100 percent 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 else redirect_to_lti_return_path