class Skr::UserProxy
The UserProxy
is a stand-in for the real user model that will be implementation specific by the user of Stockor
Core
Public Class Methods
current()
click to toggle source
current_id()
click to toggle source
Retrieve the current id of the user we're proxying for. get's a bit complicated since we can proxy both for a user object or just the user's id @return [Fixnum] current user's ID. If the current user is not set, returns 0
# File lib/skr/user_proxy.rb, line 18 def self.current_id if self.current.nil? 0 else self.current.is_a?(Fixnum) ? self.current : self.current.id end end
scoped_to( user ) { |user| ... }
click to toggle source
sets the user for the duration of the block @example Inside a Rails controller
class DocumentsController < ApplicationController around_filter :set_skr_user # update's the Document's owner to current # But sets all the notes to be owned by admin def update_owner doc = Document.find(params[:id]) doc.current_owner = Skr::UserProxy.current Skr::UserProxy.scoped_to( User.admin ) do doc.notes.each{ |note| note.set_owner_to_current! } # will set to Skr::UserProxy.current end end private def set_skr_user user = SuperUserModel.find( session[:user] ) Skr::UserProxy.scoped_to( user ) do yield end end end
@return [UserProxy] self
# File lib/skr/user_proxy.rb, line 53 def self.scoped_to( user ) prev_user, Thread.current[:skr_user_proxy] = self.current, user yield user ensure Thread.current[:skr_user_proxy] = prev_user end