Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@chinshr
Created January 20, 2015 00:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chinshr/80127d40ff3205dd784c to your computer and use it in GitHub Desktop.
Save chinshr/80127d40ff3205dd784c to your computer and use it in GitHub Desktop.
Current Vendor
class ApplicationController < ...
#...
protected
# session[:current_vendor_id]
def current_vendor
@current_vendor ||= vendor_from_session unless @current_vendor == false
end
helper_method :current_vendor
def current_vendor=(new_vendor)
session[vendor_param] = new_session ? new_vendor.id : nil
# cookies[cookie_auth_token] = {:value => new_session ? new_session.session_id : nil, :expires => Time.now + 1.year}
@current_vendor = new_vendor || false
end
def vendor_from_session
self.current_vendor = Session.find_by_session_id(session[vendor_session_param]) if session[vendor_session_param]
end
=begin
def session_from_cookie
session = cookies[cookie_auth_token] && Session.find_by_session_id(cookies[cookie_auth_token])
if session
cookies[cookie_auth_token] = {
:value => session.session_id,
:expires => Time.now + 1.year
# :domain => "domain.com"
}
self.current_session = session
end
end
=end
def vendor_session_param
:current_vendor_id
end
=begin
def cookie_auth_token
"#{session_param}_auth_token".to_sym
end
=end
end
class User < ...
attr_accessor :current_vendor
end
class UserController < ...
before_filter :load_user, only: [:show]
before_filter :set_vendor
def load_user
@user = User.find(params[:id])
end
def set_vendor
@user.current_vendor = current_vendor
end
def show
policy(@user).edit?
end
# ...
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment