module Micro::Authorization::Permissions::ForEachFeature
Constants
- ANY
- DOT
- EXCEPT
- ONLY
Public Instance Methods
Private Instance Methods
allow?(current_context, feature_context)
click to toggle source
# File lib/micro/authorization/permissions/for_each_feature.rb, line 46 def allow?(current_context, feature_context) Utils.downcased_strings(feature_context).any? do |expectation| Array(expectation.split(DOT)) .all? { |expected_value| current_context.include?(expected_value) } end end
permit(current_context, feature_permission)
click to toggle source
# File lib/micro/authorization/permissions/for_each_feature.rb, line 35 def permit(current_context, feature_permission) feature_context = feature_permission[ANY] return feature_context unless feature_context.nil? feature_context = feature_permission[ONLY] return allow?(current_context, feature_context) if feature_context feature_context = feature_permission[EXCEPT] !allow?(current_context, feature_context) if feature_context end
permit!(current_context, feature_permission)
click to toggle source
# File lib/micro/authorization/permissions/for_each_feature.rb, line 27 def permit!(current_context, feature_permission) result = permit(current_context, feature_permission) return result unless result.nil? raise NotImplementedError end
permit?(current_context, feature_permission)
click to toggle source
# File lib/micro/authorization/permissions/for_each_feature.rb, line 19 def permit?(current_context, feature_permission) case feature_permission when true then true when false, nil then false else permit!(current_context, feature_permission) end end