Module: GDS::SSO::User::ClassMethods

Defined in:
lib/gds-sso/user.rb

Instance Method Summary collapse

Instance Method Details

#find_for_gds_oauth(auth_hash) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/gds-sso/user.rb', line 43

def find_for_gds_oauth(auth_hash)
  user_params = GDS::SSO::User.user_params_from_auth_hash(auth_hash.to_hash)
  user = self.where(:uid => user_params['uid']).first ||
         self.where(:email => user_params['email']).first

  if user
    if GDS::SSO::User.below_rails_4?
      user.update_attributes(user_params, as: :oauth)
    else
      user.update_attributes(user_params)
    end
    user
  else # Create a new user.
    if GDS::SSO::User.below_rails_4?
      self.create!(user_params, as: :oauth)
    else
      self.create!(user_params)
    end
  end
end