Class: RailsIam::Authorization::ResolvedPermissions
- Inherits:
-
Object
- Object
- RailsIam::Authorization::ResolvedPermissions
- Defined in:
- app/services/rails_iam/authorization/resolved_permissions.rb
Instance Attribute Summary collapse
-
#allowed_codes ⇒ Object
readonly
Returns the value of attribute allowed_codes.
-
#denied_codes ⇒ Object
readonly
Returns the value of attribute denied_codes.
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
Instance Method Summary collapse
- #codes ⇒ Object
- #effective_codes ⇒ Object
- #explain(permission) ⇒ Object
- #include?(permission) ⇒ Boolean
-
#initialize(allowed_codes:, denied_codes:, metadata:) ⇒ ResolvedPermissions
constructor
A new instance of ResolvedPermissions.
Constructor Details
#initialize(allowed_codes:, denied_codes:, metadata:) ⇒ ResolvedPermissions
Returns a new instance of ResolvedPermissions.
10 11 12 13 14 15 16 17 18 |
# File 'app/services/rails_iam/authorization/resolved_permissions.rb', line 10 def initialize( allowed_codes:, denied_codes:, metadata: ) @allowed_codes = allowed_codes.to_set.freeze @denied_codes = denied_codes.to_set.freeze @metadata = .freeze end |
Instance Attribute Details
#allowed_codes ⇒ Object (readonly)
Returns the value of attribute allowed_codes.
6 7 8 |
# File 'app/services/rails_iam/authorization/resolved_permissions.rb', line 6 def allowed_codes @allowed_codes end |
#denied_codes ⇒ Object (readonly)
Returns the value of attribute denied_codes.
6 7 8 |
# File 'app/services/rails_iam/authorization/resolved_permissions.rb', line 6 def denied_codes @denied_codes end |
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata.
6 7 8 |
# File 'app/services/rails_iam/authorization/resolved_permissions.rb', line 6 def @metadata end |
Instance Method Details
#codes ⇒ Object
28 29 30 |
# File 'app/services/rails_iam/authorization/resolved_permissions.rb', line 28 def codes allowed_codes end |
#effective_codes ⇒ Object
32 33 34 |
# File 'app/services/rails_iam/authorization/resolved_permissions.rb', line 32 def effective_codes @allowed_codes - @denied_codes end |
#explain(permission) ⇒ Object
36 37 38 |
# File 'app/services/rails_iam/authorization/resolved_permissions.rb', line 36 def explain() .fetch(.to_s, []) end |
#include?(permission) ⇒ Boolean
20 21 22 23 24 25 26 |
# File 'app/services/rails_iam/authorization/resolved_permissions.rb', line 20 def include?() = .to_s return false if denied?() allowed?() end |