class Permify::Clearance
Clearance: Official authorization for something to proceed or take place
Attributes
permissions[R]
repo[R]
Public Class Methods
new(repo)
click to toggle source
# File lib/permify/clearance.rb, line 4 def initialize(repo) @repo = repo @permissions = Permify::PermissionMap.new end
Public Instance Methods
add(resource, action)
click to toggle source
# File lib/permify/clearance.rb, line 9 def add(resource, action) permission = resolve_to_permission(resource, action) permissions.store(resource, action, permission) end
find(resource, action)
click to toggle source
# File lib/permify/clearance.rb, line 14 def find(resource, action) if !repo.permission_combination?(resource, action) permissions.find(resource, action) || Permify::Permission::Null.new else combination = repo.find_permission_combination(resource, action) combination.resolve(self) end end
Private Instance Methods
resolve_to_permission(resource, action_name)
click to toggle source
# File lib/permify/clearance.rb, line 26 def resolve_to_permission(resource, action_name) repo.find_permission(resource, action_name) end