Add setting to enable filtering of new course creation from LTI launch #7151
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed Changes
(Describe your changes here. Also describe the motivation for your changes: what problem do they solve, or how do they improve the application or codebase? If this pull request fixes an open issue, use a keyword to link this pull request to the issue.)
This pull request introduces a new configuration setting,
lti.course_filter_file
, to allow administrators to filter which LTI course deployments are permitted to create new course instances. LTI deployments that are not permitted to trigger new course creation can still be linked to existing MarkUs courses.The development default configuration, found in
config/dummy_lti_config.rb
, permits course names starting with'csc'
.In testing this work, I realized that if the Canvas course has a name containing spaces or other characters not allowed in the MarkUs
Course
:name
field, there will be an error. I introduced a change to sanitize the LTI course name field before creating the corresponding MarkUs course.I also added a quality of life improvement for local development:
LtiDeploymentsController::USE_SECURE_COOKIES
, which istrue
in production butfalse
in development, to specify whether the controller methods require setting secure cookies.Screenshots of your changes (if applicable)
Associated documentation repository pull request (if applicable)
MarkUsProject/Wiki#215
Type of Change
(Write an
X
or a brief description next to the type or types that best describe your changes.)Checklist
(Complete each of the following items for your pull request. Indicate that you have completed an item by changing the
[ ]
into a[x]
in the raw text, or by clicking on the checkbox in the rendered description on GitHub.)Before opening your pull request:
After opening your pull request:
Questions and Comments
(Include any questions or comments you have regarding your changes.)
Seems like the code added to
config/initializers/config.rb
wasn't detected as covered, which is consistent with most of that file. Requires further investigation, and possibly related to rubyconfig/config#352.