20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/sociable/model/linkedin.rb', line 20
def find_for_linkedin_oauth(access_token, ip)
data = access_token.info
users_criteria = self.any_of({ linkedin_user_name: data.nickname }, { last_sign_in_ip: ip, name: data.name })
if users_criteria.count > 0
user = users_criteria.first
user.credentials ||= {}
user.credentials.merge!(linkedin: access_token.credentials)
user.update_attributes(linkedin_user_name: data.nickname,
linkedin_data: access_token..raw_info,
linkedin_image_url: data.image) unless (user.linkedin_user_name)
user.update_attribute(email: data.email) unless user.email
user
else
user=self.create!(
password: Devise.friendly_token[0,20],
linkedin_image_url: data.image,
linkedin_user_name: data.nickname,
name: data.name,
email: data.email,
linkedin_data: access_token..raw_info,
credentials: credentials
)
user.save!
user
end
end
|