From 0f55c64ddd63af0d0cba6d1a004b5542b80e9252 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 16 Feb 2021 21:52:31 +0100 Subject: [PATCH] Refactor LTI study group assignment --- app/controllers/concerns/lti.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/controllers/concerns/lti.rb b/app/controllers/concerns/lti.rb index bfb79d13..c63d4390 100644 --- a/app/controllers/concerns/lti.rb +++ b/app/controllers/concerns/lti.rb @@ -75,9 +75,9 @@ module Lti result end - def mooc_course - # All Xikolo platforms set the custom_course to the course code - params[:custom_course] + def context_id? + # All platforms (except HPI Schul-Cloud) set the context_id + params[:context_id] end def refuse_lti_launch(options = {}) @@ -195,13 +195,13 @@ module Lti def set_study_group_membership - group = if mooc_course + group = if not context_id? + StudyGroup.find_or_create_by(external_id: @provider.resource_link_id, consumer: @consumer) + else # Ensure to find the group independent of the name and set it only once. StudyGroup.find_or_create_by(external_id: @provider.context_id, consumer: @consumer) do |new_group| new_group.name = @provider.context_title end - else - StudyGroup.find_or_create_by(external_id: @provider.resource_link_id, consumer: @consumer) end group.external_users << @current_user unless group.external_users.include? @current_user group.save