class Asserter::Permission
Public Class Methods
new(permission)
click to toggle source
Initialize a new permission.
Parameters¶ ↑
-
permission
-Permission
Returns¶ ↑
-
Asserter::Permission
- New instance.
# File lib/asserter/permission.rb, line 10 def initialize(permission) @permission_terms = permission.split('.') end
Public Instance Methods
permit?(action)
click to toggle source
Validate a permission against an action. Check each terms of a given permission against each terms of a given action and compare them.
If one of the permission’s terms contains a wildcard (*), we don’t compare it and skip to the next iteration.
Parameters¶ ↑
-
action
- Action to validate.
Returns¶ ↑
-
Boolean
- True if permission by pass action.
# File lib/asserter/permission.rb, line 27 def permit?(action) action_terms = action.split('.', @permission_terms.length) return false if action_terms.length != @permission_terms.length @permission_terms.zip(action_terms).each do |p_term, a_term| next if p_term == '*' return false if p_term != a_term end end