Created
January 20, 2015 00:51
-
-
Save chinshr/80127d40ff3205dd784c to your computer and use it in GitHub Desktop.
Current Vendor
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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