Feature: login though OIDC only #1157
Open
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.
Summary of changes
default.feature.login_through_oidc_onlyis true anddefault.feature.invitationis false anddefault.feature.registrationis false inconfig/tess.ymlAND ONLY ONEexternal_api_keys.oidcis setup inconfig/secrets.yml:/users/sign_incan still be reachable, showing a bigger log in button (which redirects to the SSO) and a hidden Admin log in form (as it is used by FAQs). I know it is not a FAQ per se, but the feature was useful in this context of hiding the Admin login form.Files:
app/assets/stylesheets/application.scss: added thebtn-oidc-onlyclassName for a bigger login button in the/users/sign_inpageapp/helpers/application_helper.rb: added a method to avoid code duplication inapp/views/layouts/_login_menu.html.erbapp/models/user.rb: I tweaked devise when the featurelogin_through_oidc_only== true, this way it will not be possible to register, to invite, to recover, to remember (compared to theregistrationfeature)app/views/devise/sessions/_omniauth_options.html.erb: I added a ternary to add the relevant classNames to the OIDC login buttonapp/views/devise/sessions/new.html.erb:login_through_oidc_onlyfeature is true, I do not render the devise links but instead finish the 'faq' tags.app/views/layouts/_login_menu.html.erb:Log ininstead of theLog in 🔽dropdown.application_helpers.rbconfig/locales/en.yml: addeden.authentication.omniauth.adminfor the hidden login form in/users/sign_inconfig/tess.example.yml: rearrangeddefault/feature/invitationanddefault/feature/registration, and addeddefault/feature/login_through_oidc_onlytest/controllers/static_controller_test.rb: to test if the Log in button is found when the feature is enabledtest/integration/login_test.rb: to test the modifiedusers/sign_inpage when the feature is enabledMotivation and context
Checklist
to license it to the TeSS codebase under the
BSD license.