Merge pull request #6082 from betagouv/do_not_use_flipper_for_bypass_email_login

n'utilise plus flipper pour passer outre le login par jeton (1er partie)
This commit is contained in:
LeSim 2021-04-13 09:54:16 +02:00 committed by GitHub
commit 89f1cff796
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 6 deletions

View file

@ -2,11 +2,12 @@
#
# Table name: instructeurs
#
# id :integer not null, primary key
# encrypted_login_token :text
# login_token_created_at :datetime
# created_at :datetime
# updated_at :datetime
# id :integer not null, primary key
# bypass_email_login_token :boolean default(FALSE), not null
# encrypted_login_token :text
# login_token_created_at :datetime
# created_at :datetime
# updated_at :datetime
#
class Instructeur < ApplicationRecord
has_and_belongs_to_many :administrateurs

View file

@ -0,0 +1,6 @@
class AddBypassEmailLoginTokenColumnToInstructeur < ActiveRecord::Migration[6.1]
def change
# This may take a while if running on Postgres < 11
add_column :instructeurs, :bypass_email_login_token, :boolean, default: false, null: false
end
end

View file

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2021_04_09_075105) do
ActiveRecord::Schema.define(version: 2021_04_09_130604) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -459,6 +459,7 @@ ActiveRecord::Schema.define(version: 2021_04_09_075105) do
t.datetime "updated_at"
t.text "encrypted_login_token"
t.datetime "login_token_created_at"
t.boolean "bypass_email_login_token", default: false, null: false
end
create_table "invites", id: :serial, force: :cascade do |t|

View file

@ -0,0 +1,18 @@
namespace :after_party do
desc 'Deployment task: populate_bypass_email_login'
task populate_bypass_email_login: :environment do
user_ids = Flipper::Adapters::ActiveRecord::Gate
.where(feature_key: 'instructeur_bypass_email_login_token')
.pluck(:value)
.filter { |s| s.start_with?('User:') }
.map { |s| s.gsub('User:', '') }
.map(&:to_i)
Instructeur
.where(user: { id: user_ids })
.update_all(bypass_email_login_token: true)
AfterParty::TaskRecord
.create version: AfterParty::TaskRecorder.new(__FILE__).timestamp
end
end