Fix User Lookup Via SSO Email: Make Query Case-Insensitive #924
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.
Fixes #900
Changes proposed in this PR:
Applied .downcase to the SSO email for case-insensitive user lookup:
User.find_or_initialize_by(email: email)
is case-insensitive (whereemail
is the email provided by SSO/CILogon).identifiers
table (whereprovider.info.email
values are stored) shows that some emails contain capital letters, whereas no capitalised emails exist within theusers
table. Without applying.downcase
, the code was susceptible to the bug illustrated in the following comment: ActiveRecord::RecordInvalid: Validation failed: Email has already been taken #900 (comment)Some factoring has also been done: ade1189