Class: Permify::Repository

Inherits:
Object
  • Object
show all
Defined in:
lib/permify/repository.rb

Instance Method Summary collapse

Instance Method Details

#any(resource_class, action, combinations) ⇒ undefined

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

Parameters:

  • resource_class (Class)
  • action (String, #to_sym)

Returns:

  • (undefined)


35
36
37
38
# 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) ⇒ undefined

Define a dynamic permission

Parameters:

  • resource_class (Class)
  • action (Symbol, String)

Returns:

  • (undefined)


22
23
24
25
# 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) ⇒ Object

Finds permission in this repository

Parameters:

  • resource (Class)
  • action (String, #to_sym)


47
48
49
# File 'lib/permify/repository.rb', line 47

def find_permission(resource, action)
  permissions.find(resource, action)
end

#find_permission_combination(resource, action) ⇒ Object



55
56
57
# File 'lib/permify/repository.rb', line 55

def find_permission_combination(resource, action)
  permission_combinations.find(resource, action)
end

#permission_combination?(resource_class, action) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/permify/repository.rb', line 51

def permission_combination?(resource_class, action)
  !!find_permission_combination(resource_class, action)
end

#static(resource_class, action) ⇒ undefined

Define a static permission

Parameters:

  • resource_class (Class)
  • action (Symbol, String)

Returns:

  • (undefined)


10
11
12
13
# File 'lib/permify/repository.rb', line 10

def static(resource_class, action)
  permission = Permify::Permission::Static.new
  permissions.store(resource_class, action, permission)
end