Class: Renalware::YAMLPermissionConfiguration
- Inherits:
-
Object
- Object
- Renalware::YAMLPermissionConfiguration
- Defined in:
- app/policies/renalware/yaml_permission_configuration.rb
Overview
Responsible for determining if a user has access to a model based on a configuration file.
Example
Based on the following configuration file in YAML format (e.g. config/permissions.yml):
super_admin:
User
Patient
admin:
Admission
DrugType
We can determine who has access to what models:
configuration = PolicyConfiguration.new(Patient)
configuration.has_privilege?(user) # => true
configuration.has_privilege?(admin_user) # => false
We can also determine if a model is restricted?
configuration = PolicyConfiguration.new(Patient)
configuration.restricted? # => true
configuration = PolicyConfiguration.new(Drug)
configuration.restricted? # => false
Instance Attribute Summary collapse
-
#filename ⇒ Object
readonly
Returns the value of attribute filename.
-
#model_class ⇒ Object
readonly
Returns the value of attribute model_class.
Instance Method Summary collapse
- #has_permission?(user) ⇒ Boolean
-
#initialize(model_class, filename = nil) ⇒ YAMLPermissionConfiguration
constructor
A new instance of YAMLPermissionConfiguration.
- #restricted? ⇒ Boolean
Constructor Details
#initialize(model_class, filename = nil) ⇒ YAMLPermissionConfiguration
Returns a new instance of YAMLPermissionConfiguration.
34 35 36 37 |
# File 'app/policies/renalware/yaml_permission_configuration.rb', line 34 def initialize(model_class, filename = nil) @model_class = model_class @filename = filename || default_filename end |
Instance Attribute Details
#filename ⇒ Object (readonly)
Returns the value of attribute filename.
39 40 41 |
# File 'app/policies/renalware/yaml_permission_configuration.rb', line 39 def filename @filename end |
#model_class ⇒ Object (readonly)
Returns the value of attribute model_class.
39 40 41 |
# File 'app/policies/renalware/yaml_permission_configuration.rb', line 39 def model_class @model_class end |
Instance Method Details
#has_permission?(user) ⇒ Boolean
45 46 47 |
# File 'app/policies/renalware/yaml_permission_configuration.rb', line 45 def (user) model_class.name.in? models_user_can_access(user) end |
#restricted? ⇒ Boolean
41 42 43 |
# File 'app/policies/renalware/yaml_permission_configuration.rb', line 41 def restricted? restricted_model_classes.include?(model_class.name) end |