class Permify::Repository

Public Instance Methods

any(resource_class, action, combinations) click to toggle source

Creates a permission that's granted whenever any of the combined permissions is granted

@param resource_class [Class] @param action [String, to_sym]

@return [undefined]

# File lib/permify/repository.rb, line 35
def any(resource_class, action, combinations)
  combination_map = Permify::Permission::CombinationMap.new(combinations)
  permission_combinations.store(resource_class, action, combination_map)
end
dynamic(resource_class, action, *args) click to toggle source

Define a dynamic permission

@param resource_class [Class] @param action [Symbol, String]

@return [undefined]

# File lib/permify/repository.rb, line 22
def dynamic(resource_class, action, *args)
  permission = Permify::Permission::Dynamic.new args.flatten
  permissions.store(resource_class, action, permission)
end
find_permission(resource, action) click to toggle source

Finds permission in this repository

@param resource [Class] @param action [String, to_sym]

@return permission [Permify::Permission, nil]

# File lib/permify/repository.rb, line 47
def find_permission(resource, action)
  permissions.find(resource, action)
end
find_permission_combination(resource, action) click to toggle source
# File lib/permify/repository.rb, line 55
def find_permission_combination(resource, action)
  permission_combinations.find(resource, action)
end
permission_combination?(resource_class, action) click to toggle source
# File lib/permify/repository.rb, line 51
def permission_combination?(resource_class, action)
  !!find_permission_combination(resource_class, action)
end
static(resource_class, action) click to toggle source

Define a static permission

@param resource_class [Class] @param action [Symbol, String]

@return [undefined]

# File lib/permify/repository.rb, line 10
def static(resource_class, action)
  permission = Permify::Permission::Static.new
  permissions.store(resource_class, action, permission)
end

Protected Instance Methods

permission_combinations() click to toggle source
# File lib/permify/repository.rb, line 65
def permission_combinations
  @permission_combinations ||= Permify::PermissionMap.new
end
permissions() click to toggle source
# File lib/permify/repository.rb, line 61
def permissions
  @permissions ||= Permify::PermissionMap.new
end