From 3f10582f9310b17cf42a4b1970b2e9a5ad5c78a0 Mon Sep 17 00:00:00 2001 From: Ahmad Farhat <ahmad.af.farhat@gmail.com> Date: Tue, 15 Nov 2022 16:28:22 -0500 Subject: [PATCH] Mark external accounts as verified (#4129) * Mark external accounts as verified * test --- app/controllers/external_controller.rb | 3 ++- db/data/20221115190918_backfill_verified.rb | 11 +++++++++++ db/data_schema.rb | 2 +- spec/controllers/external_controller_spec.rb | 8 ++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 db/data/20221115190918_backfill_verified.rb diff --git a/app/controllers/external_controller.rb b/app/controllers/external_controller.rb index f21c4ab1..3c82adee 100644 --- a/app/controllers/external_controller.rb +++ b/app/controllers/external_controller.rb @@ -11,7 +11,8 @@ class ExternalController < ApplicationController user_info = { name: credentials['info']['name'], email: credentials['info']['email'], - language: extract_language_code(credentials['info']['locale']) + language: extract_language_code(credentials['info']['locale']), + verified: true } user = User.find_or_create_by!(external_id: credentials['uid'], provider:) do |u| diff --git a/db/data/20221115190918_backfill_verified.rb b/db/data/20221115190918_backfill_verified.rb new file mode 100644 index 00000000..45e6beaf --- /dev/null +++ b/db/data/20221115190918_backfill_verified.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +class BackfillVerified < ActiveRecord::Migration[7.0] + def up + User.where.not(external_id: nil).update_all(verified: true) # rubocop:disable Rails/SkipsModelValidations + end + + def down + raise ActiveRecord::IrreversibleMigration + end +end diff --git a/db/data_schema.rb b/db/data_schema.rb index a6bbbe38..e7ff4a64 100644 --- a/db/data_schema.rb +++ b/db/data_schema.rb @@ -1 +1 @@ -DataMigrate::Data.define(version: 20221003201116) +DataMigrate::Data.define(version: 20221115190918) diff --git a/spec/controllers/external_controller_spec.rb b/spec/controllers/external_controller_spec.rb index c572daed..5064310c 100644 --- a/spec/controllers/external_controller_spec.rb +++ b/spec/controllers/external_controller_spec.rb @@ -49,6 +49,14 @@ RSpec.describe ExternalController, type: :controller do expect(User.find_by(email: OmniAuth.config.mock_auth[:openid_connect][:info][:email]).role).to eq(role) end + it 'marks the user as verified' do + request.env['omniauth.auth'] = OmniAuth.config.mock_auth[:openid_connect] + + get :create_user, params: { provider: 'openid_connect' } + + expect(User.find_by(email: OmniAuth.config.mock_auth[:openid_connect][:info][:email]).verified?).to be true + end + context 'redirect' do it 'redirects to the location cookie if the format is valid' do request.env['omniauth.auth'] = OmniAuth.config.mock_auth[:openid_connect] -- GitLab