diff --git a/app/controllers/concerns/lti.rb b/app/controllers/concerns/lti.rb index c8875404..8257bc99 100644 --- a/app/controllers/concerns/lti.rb +++ b/app/controllers/concerns/lti.rb @@ -24,6 +24,8 @@ module Lti session.delete(:consumer_id) session.delete(:external_user_id) 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, @@ -223,6 +225,7 @@ module Lti session[:consumer_id] = options[:consumer].id session[:external_user_id] = @current_user.id + session[:lti_parameters_id] = lti_parameters.id end private :store_lti_session_data diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index b6f3b573..1e4c33c0 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -331,7 +331,8 @@ class ExercisesController < ApplicationController submission: @submission.inspect, params: params.as_json, current_user: current_user, - lti_exercise_id: session[:lti_exercise_id] + lti_exercise_id: session[:lti_exercise_id], + lti_parameters_id: session[:lti_parameters_id] ) lti_parameter = LtiParameter.where(consumers_id: session[:consumer_id], diff --git a/spec/concerns/lti_spec.rb b/spec/concerns/lti_spec.rb index 37bb170f..e184539e 100644 --- a/spec/concerns/lti_spec.rb +++ b/spec/concerns/lti_spec.rb @@ -20,6 +20,8 @@ describe Lti do expect(controller.session).to receive(:delete).with(:consumer_id) expect(controller.session).to receive(:delete).with(:external_user_id) expect(controller.session).to receive(:delete).with(:embed_options) + expect(controller.session).to receive(:delete).with(:lti_exercise_id) + expect(controller.session).to receive(:delete).with(:lti_parameters_id) controller.send(:clear_lti_session_data) end end @@ -161,6 +163,7 @@ describe Lti do controller.instance_variable_set(:@exercise, FactoryBot.create(:fibonacci)) expect(controller.session).to receive(:[]=).with(:consumer_id, anything) expect(controller.session).to receive(:[]=).with(:external_user_id, anything) + expect(controller.session).to receive(:[]=).with(:lti_parameters_id, anything) controller.send(:store_lti_session_data, consumer: FactoryBot.build(:consumer), parameters: parameters) end