Exception: AtlasRb::ForbiddenError

Inherits:
Error
  • Object
show all
Defined in:
lib/atlas_rb/errors.rb

Overview

Note:

Scoped to the re-parent / linked-member write paths and the Compilation surface — 403s on other endpoints still surface as raw responses for the caller's own rescue layer, unchanged.

Raised when Atlas refuses a re-parent, linked-member, or Compilation request with an HTTP 403, whose envelope is { "error", "action", "subject" }. Lets callers distinguish "you may not do this" from a structural rejection (ReparentError / LinkedMemberError / CompilationError) or a not-found.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, code: nil, action: nil, subject: nil) ⇒ ForbiddenError

Returns a new instance of ForbiddenError.

Parameters:

  • message (String)

    human-readable authorization-failure description.

  • code (String, nil) (defaults to: nil)

    the envelope's error value.

  • action (String, nil) (defaults to: nil)

    the forbidden action.

  • subject (String, nil) (defaults to: nil)

    the subject the action was forbidden on.



160
161
162
163
164
165
# File 'lib/atlas_rb/errors.rb', line 160

def initialize(message, code: nil, action: nil, subject: nil)
  super(message)
  @code = code
  @action = action
  @subject = subject
end

Instance Attribute Details

#actionString? (readonly)

Returns the action that was forbidden (e.g. "reparent").

Returns:

  • (String, nil)

    the action that was forbidden (e.g. "reparent").



151
152
153
# File 'lib/atlas_rb/errors.rb', line 151

def action
  @action
end

#codeString? (readonly)

Returns the envelope's error value.

Returns:

  • (String, nil)

    the envelope's error value.



148
149
150
# File 'lib/atlas_rb/errors.rb', line 148

def code
  @code
end

#subjectString? (readonly)

Returns the subject (resource) the action was forbidden on.

Returns:

  • (String, nil)

    the subject (resource) the action was forbidden on.



154
155
156
# File 'lib/atlas_rb/errors.rb', line 154

def subject
  @subject
end