class Spine::Permissions::Collection
Attributes
registered[R]
Public Class Methods
new()
click to toggle source
# File lib/spine/permissions/collection.rb, line 4 def initialize @registered = { all: { all: default_permission } } end
Public Instance Methods
default_permission()
click to toggle source
# File lib/spine/permissions/collection.rb, line 31 def default_permission Deny end
denied?(action, resource)
click to toggle source
# File lib/spine/permissions/collection.rb, line 22 def denied?(action, resource) permission(action, resource).denied? end
deny(action, resource)
click to toggle source
# File lib/spine/permissions/collection.rb, line 13 def deny(action, resource) add(Deny, action, resource) self end
grant(action, resource)
click to toggle source
# File lib/spine/permissions/collection.rb, line 8 def grant(action, resource) add(Grant, action, resource) self end
granted?(action, resource)
click to toggle source
# File lib/spine/permissions/collection.rb, line 18 def granted?(action, resource) permission(action, resource).granted? end
permission(action, resource)
click to toggle source
# File lib/spine/permissions/collection.rb, line 26 def permission(action, resource) resource_permission = registered[resource] || registered[:all] resource_permission[action] || resource_permission[:all] end
Private Instance Methods
add(permission, action, resource)
click to toggle source
# File lib/spine/permissions/collection.rb, line 39 def add(permission, action, resource) if resource == :all add_to_all_resources(permission, action) elsif action == :all add_to_all_actions(permission, resource) else add_to_resource(permission, action, resource) end end
add_to_all_actions(permission, resource)
click to toggle source
# File lib/spine/permissions/collection.rb, line 56 def add_to_all_actions(permission, resource) permissions = registered[resource] permissions.keys.each do |action| permissions[action] = permission end end
add_to_all_resources(permission, action)
click to toggle source
# File lib/spine/permissions/collection.rb, line 49 def add_to_all_resources(permission, action) registered.keys.each do |resource| add_to_all_actions(permission, resource) if action == :all registered[resource][action] = permission end end
add_to_resource(permission, action, resource)
click to toggle source
# File lib/spine/permissions/collection.rb, line 63 def add_to_resource(permission, action, resource) registered[resource] ||= registered[:all].dup registered[resource][action] = permission end