Add additional first_name and last_name SAML attribute statement options, and modify Omniauthable concern to use full_name or first_name + last_name if not available (#6669)
This commit is contained in:
		| @@ -204,7 +204,9 @@ STREAMING_CLUSTER_NUM=1 | ||||
| # SAML_SECURITY_ASSUME_EMAIL_IS_VERIFIED=true | ||||
| # SAML_ATTRIBUTES_STATEMENTS_UID="urn:oid:0.9.2342.19200300.100.1.1" | ||||
| # SAML_ATTRIBUTES_STATEMENTS_EMAIL="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" | ||||
| # SAML_ATTRIBUTES_STATEMENTS_FULL_NAME="urn:oid:2.5.4.42" | ||||
| # SAML_ATTRIBUTES_STATEMENTS_FULL_NAME="urn:oid:2.16.840.1.113730.3.1.241" | ||||
| # SAML_ATTRIBUTES_STATEMENTS_FIRST_NAME="urn:oid:2.5.4.42" | ||||
| # SAML_ATTRIBUTES_STATEMENTS_LAST_NAME="urn:oid:2.5.4.4" | ||||
| # SAML_UID_ATTRIBUTE="urn:oid:0.9.2342.19200300.100.1.1" | ||||
| # SAML_ATTRIBUTES_STATEMENTS_VERIFIED= | ||||
| # SAML_ATTRIBUTES_STATEMENTS_VERIFIED_EMAIL= | ||||
|   | ||||
| @@ -58,13 +58,14 @@ module Omniauthable | ||||
|       email_is_verified = auth.info.verified || auth.info.verified_email || assume_verified | ||||
|       email             = auth.info.verified_email || auth.info.email | ||||
|       email             = email_is_verified && !User.exists?(email: auth.info.email) && email | ||||
|       display_name      = auth.info.full_name || [auth.info.first_name, auth.info.last_name].join(' ') | ||||
|  | ||||
|       { | ||||
|         email: email ? email : "#{TEMP_EMAIL_PREFIX}-#{auth.uid}-#{auth.provider}.com", | ||||
|         password: Devise.friendly_token[0, 20], | ||||
|         account_attributes: { | ||||
|           username: ensure_unique_username(auth.uid), | ||||
|           display_name: [auth.info.first_name, auth.info.last_name].join(' '), | ||||
|           display_name: display_name, | ||||
|         }, | ||||
|       } | ||||
|     end | ||||
|   | ||||
| @@ -55,6 +55,8 @@ Devise.setup do |config| | ||||
|     saml_options[:attribute_statements][:uid] = [ENV['SAML_ATTRIBUTES_STATEMENTS_UID']] if ENV['SAML_ATTRIBUTES_STATEMENTS_UID'] | ||||
|     saml_options[:attribute_statements][:email] = [ENV['SAML_ATTRIBUTES_STATEMENTS_EMAIL']] if ENV['SAML_ATTRIBUTES_STATEMENTS_EMAIL'] | ||||
|     saml_options[:attribute_statements][:full_name] = [ENV['SAML_ATTRIBUTES_STATEMENTS_FULL_NAME']] if ENV['SAML_ATTRIBUTES_STATEMENTS_FULL_NAME'] | ||||
|     saml_options[:attribute_statements][:first_name] = [ENV['SAML_ATTRIBUTES_STATEMENTS_FIRST_NAME']] if ENV['SAML_ATTRIBUTES_STATEMENTS_FIRST_NAME'] | ||||
|     saml_options[:attribute_statements][:last_name] = [ENV['SAML_ATTRIBUTES_STATEMENTS_LAST_NAME']] if ENV['SAML_ATTRIBUTES_STATEMENTS_LAST_NAME'] | ||||
|     saml_options[:attribute_statements][:verified] = [ENV['SAML_ATTRIBUTES_STATEMENTS_VERIFIED']] if ENV['SAML_ATTRIBUTES_STATEMENTS_VERIFIED'] | ||||
|     saml_options[:attribute_statements][:verified_email] = [ENV['SAML_ATTRIBUTES_STATEMENTS_VERIFIED_EMAIL']] if ENV['SAML_ATTRIBUTES_STATEMENTS_VERIFIED_EMAIL'] | ||||
|     saml_options[:uid_attribute] = ENV['SAML_UID_ATTRIBUTE'] if ENV['SAML_UID_ATTRIBUTE'] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user