mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-02-20 14:54:15 +01:00
(api) save which data is really mapped from the sso
This commit is contained in:
parent
0dd6f4bff5
commit
6f80025adb
@ -15,6 +15,7 @@ export interface User {
|
|||||||
name: string,
|
name: string,
|
||||||
need_completion: boolean,
|
need_completion: boolean,
|
||||||
ip_address: string,
|
ip_address: string,
|
||||||
|
mapped_from_sso?: string[],
|
||||||
profile: {
|
profile: {
|
||||||
id: number,
|
id: number,
|
||||||
first_name: string,
|
first_name: string,
|
||||||
|
@ -21,11 +21,11 @@ module SingleSignOnConcern
|
|||||||
when 'profile.avatar'
|
when 'profile.avatar'
|
||||||
profile.user_avatar.remote_attachment_url
|
profile.user_avatar.remote_attachment_url
|
||||||
when 'profile.address'
|
when 'profile.address'
|
||||||
invoicing_profile.address.address
|
invoicing_profile.address&.address
|
||||||
when 'profile.organization_name'
|
when 'profile.organization_name'
|
||||||
invoicing_profile.organization.name
|
invoicing_profile.organization&.name
|
||||||
when 'profile.organization_address'
|
when 'profile.organization_address'
|
||||||
invoicing_profile.organization.address.address
|
invoicing_profile.organization&.address&.address
|
||||||
when 'profile.gender'
|
when 'profile.gender'
|
||||||
statistic_profile.gender
|
statistic_profile.gender
|
||||||
when 'profile.birthday'
|
when 'profile.birthday'
|
||||||
@ -70,6 +70,9 @@ module SingleSignOnConcern
|
|||||||
profile[sso_mapping[8..-1].to_sym] = data unless data.nil?
|
profile[sso_mapping[8..-1].to_sym] = data unless data.nil?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
return if data.nil? || mapped_from_sso.include?(sso_mapping)
|
||||||
|
|
||||||
|
self.mapped_from_sso = [mapped_from_sso, sso_mapping].compact.join(',')
|
||||||
end
|
end
|
||||||
|
|
||||||
## used to allow the migration of existing users between authentication providers
|
## used to allow the migration of existing users between authentication providers
|
||||||
|
@ -5,6 +5,7 @@ json.role member.roles.first.name
|
|||||||
json.name member.profile.full_name
|
json.name member.profile.full_name
|
||||||
json.need_completion member.need_completion?
|
json.need_completion member.need_completion?
|
||||||
json.ip_address member.current_sign_in_ip.to_s
|
json.ip_address member.current_sign_in_ip.to_s
|
||||||
|
json.mapped_from_sso member.mapped_from_sso&.split(',')
|
||||||
|
|
||||||
json.profile do
|
json.profile do
|
||||||
json.id member.profile.id
|
json.id member.profile.id
|
||||||
|
9
db/migrate/20220425095244_add_mapped_from_sso_to_user.rb
Normal file
9
db/migrate/20220425095244_add_mapped_from_sso_to_user.rb
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# We save the data provided by the SSO provider in the user table. So we know,
|
||||||
|
# per user which data was provided or not.
|
||||||
|
class AddMappedFromSsoToUser < ActiveRecord::Migration[5.2]
|
||||||
|
def change
|
||||||
|
add_column :users, :mapped_from_sso, :string
|
||||||
|
end
|
||||||
|
end
|
@ -10,7 +10,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 2022_03_28_145017) do
|
ActiveRecord::Schema.define(version: 2022_04_25_095244) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "fuzzystrmatch"
|
enable_extension "fuzzystrmatch"
|
||||||
@ -963,6 +963,7 @@ ActiveRecord::Schema.define(version: 2022_03_28_145017) do
|
|||||||
t.boolean "is_allow_newsletter"
|
t.boolean "is_allow_newsletter"
|
||||||
t.inet "current_sign_in_ip"
|
t.inet "current_sign_in_ip"
|
||||||
t.inet "last_sign_in_ip"
|
t.inet "last_sign_in_ip"
|
||||||
|
t.string "mapped_from_sso"
|
||||||
t.index ["auth_token"], name: "index_users_on_auth_token"
|
t.index ["auth_token"], name: "index_users_on_auth_token"
|
||||||
t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
|
t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
|
||||||
t.index ["email"], name: "index_users_on_email", unique: true
|
t.index ["email"], name: "index_users_on_email", unique: true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user