Sha256: d20fd4d36af7271e3d8264a1fc94df1a4731313cfe7dd4bc6e85ae5b637426d2
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
# @stanislaw: needed? require 'cantango/permit_engine/util' module CanTango class Ability autoload_modules :ClassMethods, :Scope, :Cache autoload_modules :MasqueradeHelpers, :PermitHelpers, :PermissionHelpers autoload_modules :UserHelpers, :RoleHelpers include CanCan::Ability include Cache extend ClassMethods attr_reader :options, :subject, :session # Equivalent to a CanCan Ability#initialize call # which executes all the permission logic def initialize candidate, options = {} raise "Candidate must be something!" if !candidate @candidate, @options = candidate, options @session = options[:session] || {} # seperate session cache for each type of user? return if cached_rules? # run permission evaluators with(:permissions) {|permission| permission.evaluate! user } with(:permits) {|permit| break if permit.execute == :break } cache_rules! end include CanTango::PermitEngine::Util def with engine_type, &block send(engine_type).each do |obj| yield obj end if send(:"#{engine_type}?") end def subject return @candidate.active_user if masquerade_user? return @candidate.active_account if masquerade_account? @candidate end def config CanTango.config end include MasqueradeHelpers include PermissionHelpers include PermitHelpers include UserHelpers include RoleHelpers end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cantango-0.8.0 | lib/cantango/ability.rb |