Sha256: 05700216a8095e2733932fa78ee012b200f1472ac6b6dcd0719ebda0ab70184b

Contents?: true

Size: 1022 Bytes

Versions: 1

Compression:

Stored size: 1022 Bytes

Contents

module CanTango
  module Api
    module User
      module Session
        # Example: generated from types of accounts! (see below)
        # def admin_can?(*args)
        #   current_ability(:admin).can?(*args)
        # end
        def self.included(base)      	
          ::CanTango.config.users.registered.each do |user|
            base.class_eval %{
              def session_#{user}
                current_#{user} if respond_to? :current_#{user}
                guest_user
              end
          	}
      	end

      	# give me any logged in user or the guest user
      	def any_user *types
      		types = types.flatten.select_labels.map(&:to_sym)
          c_user = ::CanTango.config.users.registered.each do |user|
          	send(:"current_#{user}") if respond_to?(:"current_#{user}") && (types.empty? || types.include?(user))
          end.compact.first
          c_user || guest_user
      	end

        def guest_user
       	  CanTango.config.guest.user
        end      	
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cantango-0.8.9.3 lib/cantango/api/user/session.rb