Module: Admission::Tests
- Defined in:
- lib/admission/tests/tests.rb
Defined Under Namespace
Classes: ContextSpecificPrivilege, Evaluation, RuleCheckContext
Class Attribute Summary collapse
-
.all_privileges ⇒ Object
Returns the value of attribute all_privileges.
-
.order ⇒ Object
Returns the value of attribute order.
Class Method Summary collapse
- .assertion_failed_message(arbitration, privilege) ⇒ Object
- .refutation_failed_message(arbitration, privilege) ⇒ Object
- .separate_privileges(selector = nil, inheritance: true, list: all_privileges, &block) ⇒ Object
Class Attribute Details
.all_privileges ⇒ Object
Returns the value of attribute all_privileges.
5 6 7 |
# File 'lib/admission/tests/tests.rb', line 5 def all_privileges @all_privileges end |
.order ⇒ Object
Returns the value of attribute order.
4 5 6 |
# File 'lib/admission/tests/tests.rb', line 4 def order @order end |
Class Method Details
.assertion_failed_message(arbitration, privilege) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/admission/tests/tests.rb', line 7 def arbitration, privilege 'Admission denied to %s applying %s.' % [ arbitration.case_to_s, privilege.to_s ] end |
.refutation_failed_message(arbitration, privilege) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/admission/tests/tests.rb', line 14 def arbitration, privilege 'Admission given to %s applying %s.' % [ arbitration.case_to_s, privilege.to_s ] end |
.separate_privileges(selector = nil, inheritance: true, list: all_privileges, &block) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/admission/tests/tests.rb', line 21 def separate_privileges selector=nil, inheritance: true, list: all_privileges, &block selector = block unless selector selector = [selector] if selector.is_a? String block = case selector when Array if inheritance ref_privileges = selector.map do |s| order.get *Admission::Privilege.split_text_key(s) end ->(p){ ref_privileges.any?{|ref_p| p.eql_or_inherits? ref_p } } else ->(p){ selector.include? p.text_key } end when Proc selector else raise ArgumentError.new('bad selector type') end list.partition &block end |