Skip to content

Instantly share code, notes, and snippets.

@Znow
Created March 26, 2011 10:53
Show Gist options
  • Select an option

  • Save Znow/888198 to your computer and use it in GitHub Desktop.

Select an option

Save Znow/888198 to your computer and use it in GitHub Desktop.
# users_controller
def create
@user = User.new(params[:user])
if @user.save
sign_in @user
flash[:success] = "Welcome to DanielG.dk!"
redirect_to @user # Redirects to the new users show page
else
@title = "Sign Up"
render 'new'
end
end
# sessions_helper
module SessionsHelper
def current_user
@current_user ||= user_from_remember_token
end
def current_user?(user)
user == current_user
end
def sign_in(user)
cookies.permanent.signed[:remember_token] = [user.id, user.salt]
self.current_user = user # Sets the current_user object to the user object
end
def current_user=(user)
@current_user = user
end
# Signs the user out
def sign_out
cookies.delete(:remember_token) # Deletes the cookie :remember_token
self.current_user = nil # sets the current_user object to nil
end
def signed_in?
!current_user.nil?
end
def deny_access
store_location
redirect_to signin_path, :notice => "Please sign in to access this page" # A shortcut to put a message in flash[:notice] with redirect_to, also works with :error but not :success
end
def redirect_back_or(default)
redirect_to(session[:return_to] || default)
clear_return_to
end
private
def user_from_remember_token
User.authenticate_with_salt(*remember_token)
end
def remember_token
cookies.signed[:remember_token] || [nil, nil]
end
def store_location
session[:return_to] = request.fullpath
end
def clear_return_to
session[:return_to] = nil
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment