diff options
author | ThibG <thib@sitedethib.com> | 2019-03-14 22:11:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-14 22:11:56 +0100 |
commit | c2fa0f7c40bcc4064e8baaa221665eadd391c001 (patch) | |
tree | 74a5e58f2c724746d2e929b9df0e5682f17a2637 /app/models/concerns/ldap_authenticable.rb | |
parent | fa75324059c7a146354470691888dc0e1de0342f (diff) | |
parent | 09ac5e7528ba3bfe90c20002f47c863d9afc6fcd (diff) |
Merge pull request #960 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/models/concerns/ldap_authenticable.rb')
-rw-r--r-- | app/models/concerns/ldap_authenticable.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/models/concerns/ldap_authenticable.rb b/app/models/concerns/ldap_authenticable.rb new file mode 100644 index 000000000..e1b5e3832 --- /dev/null +++ b/app/models/concerns/ldap_authenticable.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module LdapAuthenticable + extend ActiveSupport::Concern + + def ldap_setup(_attributes) + self.confirmed_at = Time.now.utc + self.admin = false + + save! + end + + class_methods do + def ldap_get_user(attributes = {}) + resource = joins(:account).find_by(accounts: { username: attributes[Devise.ldap_uid.to_sym].first }) + + if resource.blank? + resource = new(email: attributes[:mail].first, agreement: true, account_attributes: { username: attributes[Devise.ldap_uid.to_sym].first }) + resource.ldap_setup(attributes) + end + + resource + end + end +end |