mirror of
https://github.com/mastodon/mastodon.git
synced 2025-05-11 20:21:10 +00:00
Merge f5b787f291
into fbe9728f36
This commit is contained in:
commit
fafec96314
|
@ -93,13 +93,40 @@ module User::Omniauthable
|
||||||
end
|
end
|
||||||
|
|
||||||
def user_params_from_auth(email, auth)
|
def user_params_from_auth(email, auth)
|
||||||
|
display_name = nil
|
||||||
|
|
||||||
|
provider_config = Devise.omniauth_configs[auth.provider.to_sym]
|
||||||
|
display_name_claim = nil
|
||||||
|
|
||||||
|
display_name_claim = provider_config.options[:display_name_claim] if provider_config.present? && provider_config.options.is_a?(Hash)
|
||||||
|
|
||||||
|
if display_name_claim.present?
|
||||||
|
if auth.extra.respond_to?(:raw_info) && auth.extra.raw_info.present?
|
||||||
|
if auth.extra.raw_info.respond_to?(display_name_claim)
|
||||||
|
display_name = auth.extra.raw_info.send(display_name_claim)
|
||||||
|
elsif auth.extra.raw_info.respond_to?(:[])
|
||||||
|
display_name = auth.extra.raw_info[display_name_claim.to_s] || auth.extra.raw_info[display_name_claim.to_sym]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if display_name.blank? && auth.info.present?
|
||||||
|
if auth.info.respond_to?(display_name_claim)
|
||||||
|
display_name = auth.info.send(display_name_claim)
|
||||||
|
elsif auth.info.respond_to?(:[])
|
||||||
|
display_name = auth.info[display_name_claim.to_s] || auth.info[display_name_claim.to_sym]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
display_name = auth.info.full_name || auth.info.name || [auth.info.first_name, auth.info.last_name].join(' ') if display_name.blank?
|
||||||
|
|
||||||
{
|
{
|
||||||
email: email || "#{TEMP_EMAIL_PREFIX}-#{auth.uid}-#{auth.provider}.com",
|
email: email || "#{TEMP_EMAIL_PREFIX}-#{auth.uid}-#{auth.provider}.com",
|
||||||
agreement: true,
|
agreement: true,
|
||||||
external: true,
|
external: true,
|
||||||
account_attributes: {
|
account_attributes: {
|
||||||
username: ensure_unique_username(ensure_valid_username(auth.uid)),
|
username: ensure_unique_username(ensure_valid_username(auth.uid)),
|
||||||
display_name: auth.info.full_name || auth.info.name || [auth.info.first_name, auth.info.last_name].join(' '),
|
display_name: display_name,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
|
@ -89,6 +89,7 @@ Devise.setup do |config|
|
||||||
oidc_options[:send_scope_to_token_endpoint] = ENV['OIDC_SEND_SCOPE_TO_TOKEN_ENDPOINT'] == 'true' if ENV['OIDC_SEND_SCOPE_TO_TOKEN_ENDPOINT'] # OPTIONAL (default: true)
|
oidc_options[:send_scope_to_token_endpoint] = ENV['OIDC_SEND_SCOPE_TO_TOKEN_ENDPOINT'] == 'true' if ENV['OIDC_SEND_SCOPE_TO_TOKEN_ENDPOINT'] # OPTIONAL (default: true)
|
||||||
oidc_options[:post_logout_redirect_uri] = ENV['OIDC_IDP_LOGOUT_REDIRECT_URI'] if ENV['OIDC_IDP_LOGOUT_REDIRECT_URI'] # OPTIONAL
|
oidc_options[:post_logout_redirect_uri] = ENV['OIDC_IDP_LOGOUT_REDIRECT_URI'] if ENV['OIDC_IDP_LOGOUT_REDIRECT_URI'] # OPTIONAL
|
||||||
oidc_options[:uid_field] = ENV['OIDC_UID_FIELD'] if ENV['OIDC_UID_FIELD'] # NEED
|
oidc_options[:uid_field] = ENV['OIDC_UID_FIELD'] if ENV['OIDC_UID_FIELD'] # NEED
|
||||||
|
oidc_options[:display_name_claim] = ENV['OIDC_DISPLAY_NAME_CLAIM'] if ENV['OIDC_DISPLAY_NAME_CLAIM'] # OPTIONAL
|
||||||
oidc_options[:client_options] = {}
|
oidc_options[:client_options] = {}
|
||||||
oidc_options[:client_options][:identifier] = ENV['OIDC_CLIENT_ID'] if ENV['OIDC_CLIENT_ID'] # NEED
|
oidc_options[:client_options][:identifier] = ENV['OIDC_CLIENT_ID'] if ENV['OIDC_CLIENT_ID'] # NEED
|
||||||
oidc_options[:client_options][:secret] = ENV['OIDC_CLIENT_SECRET'] if ENV['OIDC_CLIENT_SECRET'] # NEED
|
oidc_options[:client_options][:secret] = ENV['OIDC_CLIENT_SECRET'] if ENV['OIDC_CLIENT_SECRET'] # NEED
|
||||||
|
|
Loading…
Reference in New Issue
Block a user