Sha256: ac8e1dfcedfbd890f24e02e441f408e8c312fcb94ee6c2ef8e8f6ed637570639
Contents?: true
Size: 682 Bytes
Versions: 14
Compression:
Stored size: 682 Bytes
Contents
module CanTango class PermissionEngine < Engine class Evaluator attr_reader :ability, :rule include CanTango::Rules def initialize ability, rule @ability = ability @rule = rule safe_rules! end def evaluate! user @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
14 entries across 14 versions & 1 rubygems