diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-01-25 12:36:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-25 12:36:54 +0100 |
commit | 9519d55332a1f22891e5ad8a1de1d2ba027bafc7 (patch) | |
tree | f083e968bc69b953da96163b575ec63d4c99d67c /app/models | |
parent | e1ec3a9f09add8a34b1a77ce217be8e51ebd4936 (diff) |
Fix SSO authentication not working due to missing agreement boolean (#9915)
Fix #9906
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/concerns/omniauthable.rb | 1 | ||||
-rw-r--r-- | app/models/user.rb | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/app/models/concerns/omniauthable.rb b/app/models/concerns/omniauthable.rb index f263fe7af..4dd2e9383 100644 --- a/app/models/concerns/omniauthable.rb +++ b/app/models/concerns/omniauthable.rb @@ -63,6 +63,7 @@ module Omniauthable { email: email || "#{TEMP_EMAIL_PREFIX}-#{auth.uid}-#{auth.provider}.com", password: Devise.friendly_token[0, 20], + agreement: true, account_attributes: { username: ensure_unique_username(auth.uid), display_name: display_name, diff --git a/app/models/user.rb b/app/models/user.rb index 5aa5c2b15..fdd2741c1 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -295,6 +295,7 @@ class User < ApplicationRecord def self.pam_get_user(attributes = {}) return nil unless attributes[:email] + resource = if Devise.check_at_sign && !attributes[:email].index('@') joins(:account).find_by(accounts: { username: attributes[:email] }) @@ -304,6 +305,7 @@ class User < ApplicationRecord if resource.blank? resource = new(email: attributes[:email], agreement: true) + if Devise.check_at_sign && !resource[:email].index('@') resource[:email] = Rpam2.getenv(resource.find_pam_service, attributes[:email], attributes[:password], 'email', false) resource[:email] = "#{attributes[:email]}@#{resource.find_pam_suffix}" unless resource[:email] |