Sha256: a8c7640568c02518a966b2a00b1863fae823c05c4d720817991bc6a02a4755c0

Contents?: true

Size: 700 Bytes

Versions: 12

Compression:

Stored size: 700 Bytes

Contents

module Mongoid
  module Userstamp
    module User
      extend ActiveSupport::Concern

      included do
        def current?
          !RequestStore.store[:user].nil? && self._id == RequestStore.store[:user]._id
        end
      end

      module ClassMethods
        def current
          RequestStore.store[:user]
        end

        def current=(value)
          RequestStore.store[:user] = value
        end

        def do_as(user, &block)
          old = self.current

          begin
            self.current = user
            response = block.call unless block.nil?
          ensure
            self.current = old
          end

          response
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
glebtv_mongoid_userstamp-0.10.0 lib/mongoid/userstamp/user.rb
glebtv_mongoid_userstamp-0.9.2 lib/mongoid/userstamp/user.rb
glebtv_mongoid_userstamp-0.9.1 lib/mongoid/userstamp/user.rb
glebtv_mongoid_userstamp-0.9.0 lib/mongoid/userstamp/user.rb
glebtv_mongoid_userstamp-0.8.0 lib/mongoid/userstamp/user.rb
glebtv_mongoid_userstamp-0.7.2 lib/mongoid/userstamp/user.rb
glebtv_mongoid_userstamp-0.7.1 lib/mongoid/userstamp/user.rb
glebtv_mongoid_userstamp-0.7.0 lib/mongoid/userstamp/user.rb
glebtv_mongoid_userstamp-0.6.2 lib/mongoid/userstamp/user.rb
glebtv_mongoid_userstamp-0.6.1 lib/mongoid/userstamp/user.rb
glebtv_mongoid_userstamp-0.6.0 lib/mongoid/userstamp/user.rb
glebtv_mongoid_userstamp-0.5.0 lib/mongoid/userstamp/user.rb