diff options
Diffstat (limited to 'app/controllers/omniauth_callbacks_controller.rb')
-rw-r--r-- | app/controllers/omniauth_callbacks_controller.rb | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/app/controllers/omniauth_callbacks_controller.rb b/app/controllers/omniauth_callbacks_controller.rb index 817f272d458..f3f0ddd968a 100644 --- a/app/controllers/omniauth_callbacks_controller.rb +++ b/app/controllers/omniauth_callbacks_controller.rb @@ -181,6 +181,8 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController end accept_pending_invitations(user: user) if new_user + persist_accepted_terms_if_required(user) if new_user + store_after_sign_up_path_for_user if intent_to_register? sign_in_and_redirect(user, event: :authentication) end @@ -301,6 +303,15 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController redirect_to new_admin_session_path, alert: _('Invalid login or password') end + def persist_accepted_terms_if_required(user) + return unless Feature.enabled?(:update_oauth_registration_flow) + return unless user.persisted? + return unless Gitlab::CurrentSettings.current_application_settings.enforce_terms? + + terms = ApplicationSetting::Term.latest + Users::RespondToTermsService.new(user, terms).execute(accepted: true) + end + def store_after_sign_up_path_for_user store_location_for(:user, users_sign_up_welcome_path) end |