module OpenamErrbit::UserDecorator

Public Class Methods

existing_user_by_token(token) click to toggle source
# File lib/openam_errbit/user_decorator.rb, line 9
def self.existing_user_by_token(token)
  where(token: token).first if token
end
openam_user_hash(hash, token) click to toggle source
# File lib/openam_errbit/user_decorator.rb, line 23
def self.openam_user_hash(hash, token)
  uid = hash.fetch('uid').first
  full_name = hash.fetch('cn').first
  email = hash.fetch('mail').first
  { uid: uid, name: full_name, email: email, token: token}
end
update_openam_user(token, hash) click to toggle source
# File lib/openam_errbit/user_decorator.rb, line 13
def self.update_openam_user(token, hash)
  if user = where({email: hash.fetch('mail'){raise 'email is missing'}.first}).first
    user.update_attribute(:token, token)
  else
    user = self.new(openam_user_hash(hash, token))
    user.save(validate: false)
  end
  user
end