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
17 18 19 20 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 17 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
7 8 9 10 11 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 7 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!
38 39 40 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 38 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?
31 32 33 34 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 31 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
26 27 28 29 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 26 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
22 23 24 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 22 def can_one_of? actions, o = nil, obj: o can? actions, obj end |
#cannot?(action, o = nil, obj: o) ⇒ Boolean
13 14 15 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 13 def cannot? action, o = nil, obj: o !can? action, obj end |
#group_can?(action, obj, without_group = false) ⇒ Boolean
53 54 55 56 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 53 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
49 50 51 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 49 def stored_can? action, obj _roles.can?(action, obj) end |
#temporarily_can?(action, obj) ⇒ Boolean
44 45 46 47 |
# File 'lib/i_am_i_can/subject/permission_querying.rb', line 44 def temporarily_can? action, obj return false if try(:temporary_roles).blank? valid_temporary_roles.can?(action, obj) end |