Class: PermissionPolicy::PermissionReader

Inherits:
Object
  • Object
show all
Defined in:
lib/permission_policy/permission_reader.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file_path) ⇒ PermissionReader

Returns a new instance of PermissionReader.



8
9
10
# File 'lib/permission_policy/permission_reader.rb', line 8

def initialize(file_path)
  @file_path = file_path
end

Instance Attribute Details

#file_pathObject (readonly)

Returns the value of attribute file_path.



6
7
8
# File 'lib/permission_policy/permission_reader.rb', line 6

def file_path
  @file_path
end

Instance Method Details

#featuresObject



24
25
26
# File 'lib/permission_policy/permission_reader.rb', line 24

def features
  permissions.keys
end

#permissionsObject



12
13
14
# File 'lib/permission_policy/permission_reader.rb', line 12

def permissions
  @permissions = to_hash[:permissions]
end

#permitted?(feature, action, role) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
31
32
# 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

#rolesObject



16
17
18
# File 'lib/permission_policy/permission_reader.rb', line 16

def roles
  @roles = to_hash[:roles]
end

#to_hashObject



20
21
22
# File 'lib/permission_policy/permission_reader.rb', line 20

def to_hash
  @raw ||= read_file.with_indifferent_access
end