Exception: RailsIam::Authorization::Exceptions::MissingPermissionError
- Inherits:
-
AuthorizationError
- Object
- StandardError
- AuthorizationError
- RailsIam::Authorization::Exceptions::MissingPermissionError
- Includes:
- ConfigLoader
- Defined in:
- app/services/rails_iam/authorization/exceptions/missing_permission_error.rb
Instance Method Summary collapse
-
#initialize(required:) ⇒ MissingPermissionError
constructor
A new instance of MissingPermissionError.
Methods included from ConfigLoader
#authentication_strategies, #authorization_rule_error, #cookie_options, #jwt_algorithm, #jwt_audience, #jwt_expiry, #jwt_issuer, #jwt_secret_key, #refresh_token_transport, #session_strategy, #user_class
Constructor Details
#initialize(required:) ⇒ MissingPermissionError
Returns a new instance of MissingPermissionError.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/services/rails_iam/authorization/exceptions/missing_permission_error.rb', line 9 def initialize(required:) formatter = = case formatter # 1. If the user configured a plain String, use it directly when String formatter # 2. If it's a Proc/Lambda, inspect its argument requirements when Proc if formatter.arity.zero? # The user defined a lambda with no parameters: e.g., -> { "Access Denied" } formatter.call else # The user defined a parameterized lambda: e.g., ->(required:, actual:) { ... } formatter.call(required: required) end # 3. Fallback safeguard if config is empty or invalid type else "Missing permission(s): #{required.join(', ')}" end super() end |