class PermissionPolicy::PermissionReader

Attributes

file_path[R]

Public Class Methods

new(file_path) click to toggle source
# File lib/permission_policy/permission_reader.rb, line 8
def initialize(file_path)
  @file_path = file_path
end

Public Instance Methods

features() click to toggle source
# File lib/permission_policy/permission_reader.rb, line 24
def features
  permissions.keys
end
permissions() click to toggle source
# File lib/permission_policy/permission_reader.rb, line 12
def permissions
  @permissions = to_hash[:permissions]
end
permitted?(feature, action, role) click to toggle source
# File lib/permission_policy/permission_reader.rb, line 28
def permitted?(feature, action, role)
  ensure_definition!(feature, action, role)

  permissions[feature][action] && permissions[feature][action].include?(role)
end
roles() click to toggle source
# File lib/permission_policy/permission_reader.rb, line 16
def roles
  @roles = to_hash[:roles]
end
to_hash() click to toggle source
# File lib/permission_policy/permission_reader.rb, line 20
def to_hash
  @raw ||= read_file.with_indifferent_access
end

Private Instance Methods

ensure_definition!(feature, action, role) click to toggle source
# File lib/permission_policy/permission_reader.rb, line 36
def ensure_definition!(feature, action, role)
  raise PermissionPolicy::ReaderError, feature unless features.include? feature
  raise PermissionPolicy::ReaderError, action  unless permissions[feature].keys.include? action
  raise PermissionPolicy::ReaderError, role    unless roles.include? role
end
read_file() click to toggle source
# File lib/permission_policy/permission_reader.rb, line 42
def read_file
  YAML.load_file(file_path)
end