Sha256: 17a202f0d67bc2e0028d93b119c457ff772ee0761b3a53b5f011b2b67b2991f0
Contents?: true
Size: 804 Bytes
Versions: 7
Compression:
Stored size: 804 Bytes
Contents
module CanTango class PermissionEngine < Engine class Evaluator include CanTango::Helpers::Debug attr_reader :ability, :rule include CanTango::Rules def initialize ability, rule @ability = ability @rule = rule safe_rules! end def evaluate! user debug "Evaluating rule:" debug rule.can debug rule.cannot @user = user instance_eval rule.can if rule.can? instance_eval rule.cannot if rule.cannot? end def rules ability.send :rules end def user @user end def safe_rules! rule.can.gsub!(/(User|UserAccount)/,'::\1') if rule.can? rule.cannot.gsub!(/(User|UserAccount)/,'::\1') if rule.cannot? end end end end
Version data entries
7 entries across 7 versions & 1 rubygems