Refactor LTI parameters and add study group
* This change also requires that submissions in our test need to have a valid study group.
This commit is contained in:

committed by
Sebastian Serth

parent
e2baa2ee55
commit
e3603758ef
@ -1,13 +1,17 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'oauth/request_proxy/action_controller_request' # Rails 5 changed `Rack::Request` to `ActionDispatch::Request`
|
||||
|
||||
module LtiHelper
|
||||
def lti_outcome_service?(exercise_id, external_user_id)
|
||||
return false if external_user_id == ''
|
||||
# Checks for support of the LTI outcome service for the given exercise and user.
|
||||
# If the user passed is not the `current_user`, a study group id **must** be passed as well.
|
||||
def lti_outcome_service?(exercise, user, study_group_id = user.current_study_group_id)
|
||||
return false unless user.external_user?
|
||||
|
||||
lti_parameters = LtiParameter.where(external_users_id: external_user_id,
|
||||
exercises_id: exercise_id).lis_outcome_service_url?.last
|
||||
!lti_parameters.nil? && lti_parameters.present?
|
||||
lis_outcome_service_parameters(exercise, user, study_group_id).present?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def lis_outcome_service_parameters(exercise, external_user, study_group_id)
|
||||
external_user.lti_parameters.lis_outcome_service_url?.find_by(exercise:, study_group_id:)
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user