Guest User

Untitled

a guest
Feb 28th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. def User.authenticate *args
  2. options = args.options
  3.  
  4. login = options.getopt([:login, :username, :email], args.shift).to_s.strip
  5. password = options.getopt(:password, args.shift).to_s.strip
  6. local = options.getopt(:local, ActionController.current.send('local_request?')) rescue false
  7.  
  8. user = nil
  9.  
  10. unless options.getopt(:caps) == false
  11. re = %r/[a-z]/
  12. caps = [login, password].all?{|arg| arg !~ re}
  13. else
  14. caps = false
  15. end
  16.  
  17. [login, login.downcase].each do |login|
  18. next if login.blank?
  19.  
  20. user =
  21. case login
  22. when %r/@/
  23. User.find_by_email(login) ||
  24. User.find_by_username(login)
  25. else
  26. User.find_by_username(login)
  27. end
  28.  
  29. break unless caps
  30. break if user
  31. end
  32.  
  33. return nil unless user
  34.  
  35.  
  36. if(user.password == password or (caps and (user.password == password.downcase)) or local)
  37. user
  38. else
  39. false
  40. end
  41. end
Add Comment
Please, Sign In to add comment