Module: HasHelpers::ServiceTrust::Authorization
- Defined in:
- lib/has_helpers/service_trust/authorization.rb
Class Method Summary collapse
- .capabilities_from(token_context) ⇒ Object
- .require!(token_context, capability:) ⇒ Object
- .require_any!(token_context, capabilities:) ⇒ Object
Class Method Details
.capabilities_from(token_context) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/has_helpers/service_trust/authorization.rb', line 25 def capabilities_from(token_context) return token_context[:capabilities] if token_context.is_a?(Hash) && token_context[:capabilities] return token_context["capabilities"] if token_context.is_a?(Hash) && token_context["capabilities"] return token_context["_capabilities"] if token_context.is_a?(Hash) && token_context["_capabilities"] [] end |
.require!(token_context, capability:) ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/has_helpers/service_trust/authorization.rb', line 8 def require!(token_context, capability:) return if capability == :none raise ArgumentError, "capability required" if capability.blank? caps = capabilities_from(token_context) return if Capability.includes?(caps, capability) raise InsufficientCapabilityError, "missing capability: #{capability}" end |
.require_any!(token_context, capabilities:) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/has_helpers/service_trust/authorization.rb', line 18 def require_any!(token_context, capabilities:) caps = capabilities_from(token_context) return if Capability.any_match?(caps, capabilities) raise InsufficientCapabilityError, "missing any capability of: #{Array(capabilities).join(', ')}" end |