about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel <git@baby-gnu.org>2021-08-25 16:41:24 +0000
committerGitHub <noreply@github.com>2021-08-25 18:41:24 +0200
commit2ed1c92c6331029ebd2762cc425a3a163dffd113 (patch)
tree82e9c08cf7fab9124a3fa46b350622588cfbd7ab
parent366e0b82dbfd51b4502586beb39f65594ddf36a5 (diff)
New env variable: CAS_SECURITY_ASSUME_EMAIL_IS_VERIFIED (#16655)
When using a CAS server, the users only have a temporary email
`change@me-foo-cas.com` which can't be changed but by an
administrator.

We need a new environment variable like for SAML to assume the email
from CAS is verified.

* config/initializers/omniauth.rb: define CAS option for assuming
  email are always verified.
* .env.nanobox: add new variable as an example.
-rw-r--r--.env.nanobox1
-rw-r--r--config/initializers/omniauth.rb2
2 files changed, 3 insertions, 0 deletions
diff --git a/.env.nanobox b/.env.nanobox
index 5951777a2..d61673836 100644
--- a/.env.nanobox
+++ b/.env.nanobox
@@ -228,6 +228,7 @@ SMTP_FROM_ADDRESS=notifications@${APP_NAME}.nanoapp.io
 # CAS_LOCATION_KEY='location'
 # CAS_IMAGE_KEY='image'
 # CAS_PHONE_KEY='phone'
+# CAS_SECURITY_ASSUME_EMAIL_IS_VERIFIED=true
 
 # Optional SAML authentication (cf. omniauth-saml)
 # SAML_ENABLED=true
diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb
index 9e037f421..5039b4c1f 100644
--- a/config/initializers/omniauth.rb
+++ b/config/initializers/omniauth.rb
@@ -30,6 +30,8 @@ Devise.setup do |config|
     cas_options[:location_key] = ENV['CAS_LOCATION_KEY'] || 'location'
     cas_options[:image_key] = ENV['CAS_IMAGE_KEY'] || 'image'
     cas_options[:phone_key] = ENV['CAS_PHONE_KEY'] || 'phone'
+    cas_options[:security] = {}
+    cas_options[:security][:assume_email_is_verified] = ENV['CAS_SECURITY_ASSUME_EMAIL_IS_VERIFIED'] == 'true'
     config.omniauth :cas, cas_options
   end