Guest User

Untitled

a guest
Feb 19th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. # this works very nicely
  2. def self.authenticate(email, password)
  3. user = self.find_by_email(email)
  4. locked_for_x_seconds = 0
  5. if user && user.account_locked_until && Time.now < user.account_locked_until
  6. locked_for_x_seconds = (user.account_locked_until - Time.now).round
  7. user = nil
  8. end
  9. if user
  10. expected_password = encrypted_password(password, user.salt)
  11. unless user.hashed_password == expected_password
  12. user.login_attempts += 1
  13. if(user.login_attempts >= 5)
  14. user.account_locked_until = Time.now + 30.seconds
  15. user.login_attempts = 0
  16. end
  17. user.save!
  18. user = nil
  19. else
  20. user.login_attempts = 0
  21. user.account_locked_until = nil
  22. user.save!
  23. end
  24. end
  25. user ||= locked_for_x_seconds
  26. end
Add Comment
Please, Sign In to add comment