Rename user to contributor in submission

This commit is contained in:
kiragrammel
2023-08-11 12:15:36 +02:00
committed by Sebastian Serth
parent 97138288f4
commit 0234414bae
39 changed files with 267 additions and 233 deletions

View File

@@ -17,7 +17,7 @@ module FileParameters
# avoid that public files from other contexts can be created
# `next` is similar to an early return and will proceed with the next iteration of the loop
next true if file.context_type == 'Exercise' && file.context_id != exercise.id
next true if file.context_type == 'Submission' && (file.context.user_id != current_user.id || file.context.user_type != current_user.class.name)
next true if file.context_type == 'Submission' && (file.context.contributor_id != current_user.id || file.context.contributor_type != current_user.class.name)
next true if file.context_type == 'CommunitySolution' && controller_name != 'community_solutions'
# Optimization: We already queried the ancestor file, let's reuse the object.

View File

@@ -141,12 +141,12 @@ module Lti
raise Error.new("Score #{submission.normalized_score} must be between 0 and #{MAXIMUM_SCORE}!")
end
if submission.user.consumer
lti_parameter = LtiParameter.where(consumers_id: submission.user.consumer.id,
external_users_id: submission.user_id,
if submission.contributor.consumer
lti_parameter = LtiParameter.where(consumers_id: submission.contributor.consumer.id,
external_users_id: submission.contributor_id,
exercises_id: submission.exercise_id).last
provider = build_tool_provider(consumer: submission.user.consumer, parameters: lti_parameter.lti_parameters)
provider = build_tool_provider(consumer: submission.contributor.consumer, parameters: lti_parameter.lti_parameters)
end
if provider.nil?

View File

@@ -16,7 +16,7 @@ module RedirectBehavior
# 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)
clear_lti_session_data(@submission.exercise_id)
redirect_to_user_feedback
return
end
@@ -27,7 +27,7 @@ module RedirectBehavior
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)
clear_lti_session_data(@submission.exercise_id)
respond_to do |format|
format.html { redirect_to(rfc) }
format.json { render(json: {redirect: url_for(rfc)}) }
@@ -45,7 +45,7 @@ module RedirectBehavior
# increase counter 'times_featured' in rfc
rfc.increment(:times_featured)
clear_lti_session_data(@submission.exercise_id, @submission.user_id)
clear_lti_session_data(@submission.exercise_id)
respond_to do |format|
format.html { redirect_to(rfc) }
format.json { render(json: {redirect: url_for(rfc)}) }
@@ -56,7 +56,7 @@ module RedirectBehavior
else
# redirect to feedback page if score is less than 100 percent
if @exercise.needs_more_feedback?(@submission) && !@embed_options[:disable_redirect_to_feedback]
clear_lti_session_data(@submission.exercise_id, @submission.user_id)
clear_lti_session_data(@submission.exercise_id)
redirect_to_user_feedback
else
redirect_to_lti_return_path
@@ -118,8 +118,8 @@ module RedirectBehavior
def redirect_to_lti_return_path
Sentry.set_extras(
consumers_id: @submission.user&.consumer,
external_users_id: @submission.user_id,
consumers_id: current_user.consumer_id,
external_users_id: current_user.id,
exercises_id: @submission.exercise_id,
session: session.to_hash,
submission: @submission.inspect,
@@ -128,7 +128,7 @@ module RedirectBehavior
)
path = lti_return_path(submission_id: @submission.id)
clear_lti_session_data(@submission.exercise_id, @submission.user_id)
clear_lti_session_data(@submission.exercise_id)
respond_to do |format|
format.html { redirect_to(path) }
format.json { render(json: {redirect: path}) }

View File

@@ -22,7 +22,8 @@ module SubmissionParameters
def merge_user(params)
# The study_group_id might not be present in the session (e.g. for internal users), resulting in session[:study_group_id] = nil which is intended.
params.merge(
user: current_user,
contributor_id: current_user.id,
contributor_type: current_user.class.name,
study_group_id: current_user.current_study_group_id
)
end