Guest User

Untitled

a guest
Oct 17th, 2018
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. class User < ApplicationRecord
  2. has_secure_password
  3. validates :username, :email, :password_digest, presence: true
  4. validates :password, length: { minimum: 6, allow_nil: true }
  5.  
  6. attr_reader :password
  7.  
  8. after_initialize :ensure_session_token
  9.  
  10. def self.find_by_credentials(email, password)
  11. user = User.find_by(email: email)
  12. user && user.is_password?(password) ? user : nil
  13. end
  14.  
  15. def self.generate_session_token
  16. SecureRandom.urlsafe_base64
  17. end
  18.  
  19. def password=(password)
  20. @password = password
  21. self.password_digest = BCrypt::Password.create(password)
  22. end
  23.  
  24. def is_password?(password)
  25. BCrypt::Password.new(self.password_digest).is_password?(password)
  26. end
  27.  
  28. def reset_session_token!
  29. self.session_token = User.generate_session_token
  30. self.save!
  31. self.session_token
  32. end
  33.  
  34. def ensure_session_token
  35. self.session_token ||= User.generate_session_token
  36. end
  37. end
Add Comment
Please, Sign In to add comment