- Add FranceConnectInformation table to make safe FranceConnect pivot identity.

- Adapt source code with the new table
This commit is contained in:
Xavier J 2016-01-21 17:06:09 +01:00
parent d6e795df02
commit 4d812220fd
18 changed files with 454 additions and 163 deletions

View file

@ -0,0 +1,61 @@
class CreateFranceConnectInformation < ActiveRecord::Migration
class User < ActiveRecord::Base
end
class FranceConnectInformation < ActiveRecord::Base
end
def up
create_table :france_connect_informations do |t|
t.string :gender
t.string :given_name
t.string :family_name
t.date :birthdate
t.string :birthplace
t.string :france_connect_particulier_id
end
add_reference :france_connect_informations, :user, references: :users
User.all.each do |user|
FranceConnectInformation.create({gender: user.gender,
given_name: user.given_name,
family_name: user.family_name,
birthdate: user.birthdate,
birthplace: user.birthplace,
france_connect_particulier_id: user.france_connect_particulier_id,
user_id: user.id}) unless user.france_connect_particulier_id.nil?
end
remove_column :users, :gender
remove_column :users, :given_name
remove_column :users, :family_name
remove_column :users, :birthdate
remove_column :users, :birthplace
remove_column :users, :france_connect_particulier_id
end
def down
add_column :users, :gender, :string
add_column :users, :given_name, :string
add_column :users, :family_name, :string
add_column :users, :birthdate, :date
add_column :users, :birthplace, :string
add_column :users, :france_connect_particulier_id, :string
FranceConnectInformation.all.each do |fci|
User.find(fci.user_id).update_attributes({gender: fci.gender,
given_name: fci.given_name,
family_name: fci.family_name,
birthdate: fci.birthdate,
birthplace: fci.birthplace,
france_connect_particulier_id: fci.france_connect_particulier_id})
end
drop_table :france_connect_informations
end
end

View file

@ -0,0 +1,5 @@
class AddEmailToFranceConnectInformation < ActiveRecord::Migration
def change
add_column :france_connect_informations, :email_france_connect, :string
end
end

View file

@ -11,9 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20160115135025) do
ActiveRecord::Schema.define(version: 20160121110603) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -131,6 +129,17 @@ ActiveRecord::Schema.define(version: 20160115135025) do
t.integer "etablissement_id"
end
create_table "france_connect_informations", force: :cascade do |t|
t.string "gender"
t.string "given_name"
t.string "family_name"
t.date "birthdate"
t.string "birthplace"
t.string "france_connect_particulier_id"
t.integer "user_id"
t.string "email_france_connect"
end
create_table "gestionnaires", force: :cascade do |t|
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
@ -218,12 +227,12 @@ ActiveRecord::Schema.define(version: 20160115135025) do
end
create_table "users", force: :cascade do |t|
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0, null: false
t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.inet "current_sign_in_ip"
@ -231,13 +240,7 @@ ActiveRecord::Schema.define(version: 20160115135025) do
t.datetime "created_at"
t.datetime "updated_at"
t.string "siret"
t.string "loged_in_with_france_connect", default: "false"
t.string "gender"
t.string "given_name"
t.string "family_name"
t.date "birthdate"
t.string "birthplace"
t.string "france_connect_particulier_id"
t.string "loged_in_with_france_connect", default: "false"
end
add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree