Sha256: 9467aaaf4719a95368d1136d5ae5c250a2c1b95bd72f95c11cc3fd9e5bdc7d57
Contents?: true
Size: 654 Bytes
Versions: 2
Compression:
Stored size: 654 Bytes
Contents
module Credentials class Rulebook attr_reader :rules def initialize(klass, rules = []) @rules = rules @klass = klass end def can(verb, *args) @rules << Credentials::Rules::Can.new(@klass, verb, *args) end def cannot(verb, *args) @rules << Credentials::Rules::Cannot.new(@klass, verb, *args) end def can?(actor, verb, *args) result = @klass.credential_options[:allow_by_default] || false @rules.each do |rule| result = true if rule.allow?(actor, verb, *args) result = false if rule.deny?(actor, verb, *args) end result end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
fauxparse-credentials-1.0.1 | lib/credentials/rulebook.rb |
credentials-1.0.1 | lib/credentials/rulebook.rb |