Advertisement
Guest User

Untitled

a guest
Apr 19th, 2014
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. <% if signed_in? %>
  2. <li><%= link_to "Post", "signup", :class=> "post main-button-color" %></li>
  3. <li><%= link_to "Settings", "signup", :class=> "settings main-button" %></li>
  4. <li><%= link_to "Sign Out", "signout", :class=> "signout main-button" %></li>
  5. <% else %>
  6. <li><%= link_to "Sign Up", "signup", :class=> "signup main-button" %></li>
  7. <li><%= link_to "Sign In", "signin", :class=> "signin main-button" %></li>
  8. <% end %>
  9.  
  10. def sign_in(user)
  11. remember_token = User.new_remember_token
  12. cookies[:remember_token] = {:value => remember_token, :expires => 8.hours.from_now} #or whenever
  13. user.update_attribute(:remember_token, User.hash(remember_token))
  14. self.current_user = user
  15. end
  16.  
  17. def signed_in?
  18. !current_user.nil?
  19. end
  20.  
  21. def current_user=(user)
  22. @current_user = user
  23. end
  24.  
  25. def current_user
  26. remember_token = User.hash(cookies[:remember_token])
  27. @current_user ||= User.find_by_remember_token(cookies[:remember_token])
  28. end
  29.  
  30. def sign_out
  31. self.current_user = nil
  32. cookies[:remember_token] = nil
  33. end
  34.  
  35. protect_from_forgery with: :exception
  36. include SessionsHelper
  37.  
  38. before_save :create_remember_token
  39.  
  40. def User.new_remember_token
  41. SecureRandom.urlsafe_base64
  42. end
  43.  
  44. def User.hash(token)
  45. Digest::SHA1.hexdigest(token.to_s)
  46. end
  47.  
  48. private
  49.  
  50. def create_remember_token
  51. self.remember_token = SecureRandom.urlsafe_base64
  52. end
  53.  
  54. def sign_in(user)
  55.  
  56. # Create a token
  57. auth_token = SecureRandom.urlsafe_base64
  58.  
  59. # Store the token in the browser
  60. cookies.permanent[:auth_token] = auth_token
  61.  
  62. # Encrypt the token, store in database
  63. user.update_attribute(:auth_token, Digest::SHA1.hexdigest(auth_token))
  64.  
  65. # Set current session's user
  66. self.current_user = user
  67. end
  68.  
  69. def sign_in(user)
  70. remember_token = User.new_remember_token
  71. cookies[:remember_token] = {:value => remember_token, :expires => 8.hours.from_now} #or whenever
  72. user.update_attribute(:remember_token, User.encrypt(remember_token))
  73. self.current_user = user
  74. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement