Advertisement
Guest User

Untitled

a guest
Jun 8th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. class User < ActiveRecord::Base
  2. extend FriendlyId
  3. friendly_id :name, use: :slugged
  4.  
  5. TEMP_EMAIL_PREFIX = 'change@me'
  6. TEMP_EMAIL_REGEX = '/\Achange@me/'
  7. # Include default devise modules. Others available are:
  8. # :confirmable, :lockable, :timeoutable and :omniauthable
  9. devise :database_authenticatable, :registerable,
  10. :recoverable, :rememberable, :trackable, :validatable, :omniauthable
  11.  
  12.  
  13.  
  14. validates_format_of :email, without: /TEMP_EMAIL_REGEX/, on: :update
  15.  
  16. def self.find_for_oauth(auth, signed_in_resource = nil)
  17. identity = Identity.find_for_oauth(auth)
  18.  
  19. user = signed_in_resource ? signed_in_resource : identity.user
  20.  
  21. if user.nil?
  22. email_is_verified = auth.info.email && (auth.info.verified || auth.info.verified_email)
  23. email = auth.info.email if email_is_verified
  24. user = User.where(email: email).first if email
  25.  
  26. if user.nil?
  27. user = User.new(
  28. name: auth.extra.raw_info.name,
  29. email: email ? email : "#{TEMP_EMAIL_PREFIX}-#{auth.uid}-#{auth.provider}.com",
  30. password: Devise.friendly_token[0,20]
  31. )
  32. user.skip_confirmation! if user.respond_to?(:skip_confirmation)
  33. user.save!
  34. end
  35. end
  36.  
  37. if identity.user != user
  38. identity.user = user
  39. identity.save
  40. end
  41. user
  42. end
  43.  
  44. def email_verified?
  45. self.email && self.email !~ /TEMP_EMAIL_REGEX/
  46. end
  47. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement