Module: IAmICan::Subject::PermissionQuerying
- Defined in:
- lib/i_am_i_can/subject/permission_querying.rb
Instance Method Summary collapse
- #can!(action, o = nil, obj: o) ⇒ Object
-
#can?(action, o = nil, obj: o, without_group: false) ⇒ Boolean
TODO: without: :group.
- #can_each!(actions, o = nil, obj: o) ⇒ Object (also: #can_every!)
- #can_each?(actions, o = nil, obj: o) ⇒ Boolean (also: #can_every?)
- #can_one_of!(actions, o = nil, obj: o) ⇒ Object
- #can_one_of?(actions, o = nil, obj: o) ⇒ Boolean
- #cannot?(action, o = nil, obj: o) ⇒ Boolean
- #group_can?(action, obj, without_group = false) ⇒ Boolean
- #stored_can?(action, obj) ⇒ Boolean
- #temporarily_can?(action, obj) ⇒ Boolean
Instance Method Details
#can!(action, o = nil, obj: o) ⇒ Object
15 16 17 18 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 15 def can! action, o = nil, obj: o raise InsufficientPermission if cannot? action, obj true end |
#can?(action, o = nil, obj: o, without_group: false) ⇒ Boolean
TODO: without: :group
5 6 7 8 9 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 5 def can? action, o = nil, obj: o, without_group: false temporarily_can?(action, obj) || stored_can?(action, obj) || group_can?(action, obj, without_group) end |
#can_each!(actions, o = nil, obj: o) ⇒ Object Also known as: can_every!
36 37 38 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 36 def can_each! actions, o = nil, obj: o actions.each { |action| can! action, obj } && true end |
#can_each?(actions, o = nil, obj: o) ⇒ Boolean Also known as: can_every?
29 30 31 32 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 29 def can_each? actions, o = nil, obj: o # TODO: using `matched_all?` actions.each { |action| return false if cannot? action, obj } && true end |
#can_one_of!(actions, o = nil, obj: o) ⇒ Object
24 25 26 27 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 24 def can_one_of! actions, o = nil, obj: o raise InsufficientPermission unless can_one_of? actions, obj true end |
#can_one_of?(actions, o = nil, obj: o) ⇒ Boolean
20 21 22 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 20 def can_one_of? actions, o = nil, obj: o can? actions, obj end |
#cannot?(action, o = nil, obj: o) ⇒ Boolean
11 12 13 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 11 def cannot? action, o = nil, obj: o !can? action, obj end |
#group_can?(action, obj, without_group = false) ⇒ Boolean
51 52 53 54 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 51 def group_can? action, obj, without_group = false return false if without_group || i_am_i_can.without_group _roles._role_groups..matched?(action, obj) end |
#stored_can?(action, obj) ⇒ Boolean
47 48 49 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 47 def stored_can? action, obj _roles..matched?(action, obj) end |
#temporarily_can?(action, obj) ⇒ Boolean
42 43 44 45 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 42 def temporarily_can? action, obj return false if temporary_roles.blank? valid_temporary_roles..matched?(action, obj) end |