Class: YouShallNotPass::Authorizator
- Inherits:
-
Object
- Object
- YouShallNotPass::Authorizator
- Defined in:
- lib/you_shall_not_pass/authorizator.rb
Instance Method Summary collapse
- #can?(permission, **args) ⇒ Boolean
- #can_all?(*permissions, **args) ⇒ Boolean
- #can_any?(*permissions, **args) ⇒ Boolean
-
#initialize(**attrs) ⇒ Authorizator
constructor
A new instance of Authorizator.
- #perform_if(permission, **args) ⇒ Object
- #perform_if_all(*permissions, **args) ⇒ Object
- #perform_if_any(*permissions, **args) ⇒ Object
- #perform_unless(permission, **args) ⇒ Object
- #perform_unless_all(*permissions, **args) ⇒ Object
- #perform_unless_any(*permissions, **args) ⇒ Object
- #policies ⇒ Object
Constructor Details
#initialize(**attrs) ⇒ Authorizator
Returns a new instance of Authorizator.
6 7 8 9 10 |
# File 'lib/you_shall_not_pass/authorizator.rb', line 6 def initialize(**attrs) attrs.each do |attr, value| send attr, value end end |
Instance Method Details
#can?(permission, **args) ⇒ Boolean
12 13 14 15 16 |
# File 'lib/you_shall_not_pass/authorizator.rb', line 12 def can?(, **args) Array(policies.fetch()).all? do |policy| Callable(policy).call(**args) == true end end |
#can_all?(*permissions, **args) ⇒ Boolean
18 19 20 |
# File 'lib/you_shall_not_pass/authorizator.rb', line 18 def can_all?(*, **args) .all? { || can?(, **args)} end |
#can_any?(*permissions, **args) ⇒ Boolean
22 23 24 |
# File 'lib/you_shall_not_pass/authorizator.rb', line 22 def can_any?(*, **args) .any? { || can?(, **args)} end |
#perform_if(permission, **args) ⇒ Object
26 27 28 |
# File 'lib/you_shall_not_pass/authorizator.rb', line 26 def perform_if(, **args) yield if can?(, **args) end |
#perform_if_all(*permissions, **args) ⇒ Object
34 35 36 |
# File 'lib/you_shall_not_pass/authorizator.rb', line 34 def perform_if_all(*, **args) yield if can_all?(*, **args) end |
#perform_if_any(*permissions, **args) ⇒ Object
42 43 44 |
# File 'lib/you_shall_not_pass/authorizator.rb', line 42 def perform_if_any(*, **args) yield if can_any?(*, **args) end |
#perform_unless(permission, **args) ⇒ Object
30 31 32 |
# File 'lib/you_shall_not_pass/authorizator.rb', line 30 def perform_unless(, **args) yield unless can?(, **args) end |
#perform_unless_all(*permissions, **args) ⇒ Object
38 39 40 |
# File 'lib/you_shall_not_pass/authorizator.rb', line 38 def perform_unless_all(*, **args) yield unless can_all?(*, **args) end |
#perform_unless_any(*permissions, **args) ⇒ Object
46 47 48 |
# File 'lib/you_shall_not_pass/authorizator.rb', line 46 def perform_unless_any(*, **args) yield unless can_any?(*, **args) end |
#policies ⇒ Object
50 51 52 |
# File 'lib/you_shall_not_pass/authorizator.rb', line 50 def policies @policies ||= __set_policies__ end |