Sha256: f66e44d8d689ba5d88a5f746f98e73387832d0dbac3e889d25aa4266ee57dd04
Contents?: true
Size: 1.2 KB
Versions: 7
Compression:
Stored size: 1.2 KB
Contents
module CanTango class UserAcEngine < Engine include CanTango::Ability::Executor include CanTango::Ability::RoleHelpers include CanTango::Ability::UserHelpers def initialize ability super end def permit_rules permissions.each do |permission| ability.can permission.action.to_sym, permission.thing_type.constantize do |thing| thing.nil? || permission.thing_id.nil? || permission.thing_id == thing.id end end rules << ability_rules if !ability_rules.blank? end def valid? return false if !valid_mode? permissions.empty? ? invalid : true end def engine_name :user_ac end protected def ability_rules ability.send(:rules) end alias_method :cache_key, :engine_name def key_method_names [:permissions_hash] end def start_execute debug "User AC Engine executing..." end def end_execute debug "Done User AC Engine" end def permissions candidate.respond_to?(:all_permissions) ? candidate.all_permissions : [] end def invalid debug "No permissions for #{candidate} found for #all_permissions call" false end end end
Version data entries
7 entries across 7 versions & 1 rubygems