Class: Parse::ACLScope::Resolution

Inherits:
Struct
  • Object
show all
Defined in:
lib/parse/acl_scope.rb

Overview

Outcome of resolving a single mongo-direct call’s auth kwargs.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#modeSymbol

Returns one of ‘:session`, `:master`, `:public`. `:session` means the caller passed a valid `session_token:`; `:master` means the caller passed `master: true`; `:public` means neither was supplied and the path’s ‘require_session_token` toggle is off, so the SDK falls through to public-only ACL semantics.

Returns:

  • (Symbol)

    one of ‘:session`, `:master`, `:public`. `:session` means the caller passed a valid `session_token:`; `:master` means the caller passed `master: true`; `:public` means neither was supplied and the path’s ‘require_session_token` toggle is off, so the SDK falls through to public-only ACL semantics.



67
68
69
70
71
72
# File 'lib/parse/acl_scope.rb', line 67

Resolution = Struct.new(:mode, :permission_strings, :user_id, :session, :strict_role, keyword_init: true) do
  def master?; mode == :master; end
  def session?; mode == :session; end
  def public?; mode == :public; end
  def strict_role?; strict_role == true; end
end

#permission_stringsArray<String>?

Returns the ‘_rperm` allow-set ready to hand to Parse::ACL.read_predicate. `nil` for `:master` —no injection runs on the master path.

Returns:



67
68
69
70
71
72
# File 'lib/parse/acl_scope.rb', line 67

Resolution = Struct.new(:mode, :permission_strings, :user_id, :session, :strict_role, keyword_init: true) do
  def master?; mode == :master; end
  def session?; mode == :session; end
  def public?; mode == :public; end
  def strict_role?; strict_role == true; end
end

#sessionParse::AtlasSearch::Session::Resolved?

Returns the underlying resolved-session struct (carries role-name set), ‘nil` for `:master`.

Returns:



67
68
69
70
71
72
# File 'lib/parse/acl_scope.rb', line 67

Resolution = Struct.new(:mode, :permission_strings, :user_id, :session, :strict_role, keyword_init: true) do
  def master?; mode == :master; end
  def session?; mode == :session; end
  def public?; mode == :public; end
  def strict_role?; strict_role == true; end
end

#strict_roleBoolean

Returns when ‘true`, downstream predicate construction (see Parse::ACLScope.match_stage_for and Parse::ACLScope.rewrite_pipeline) suppresses the implicit `“*”` (public) grant. Only meaningful for role-scoped resolutions where the caller wants to see ONLY rows whose `_rperm` explicitly includes one of the resolved role names, not every public-readable row in the collection. Defaults to `false` for backwards compatibility. Note: even with `strict_role: true`, rows with NO `_rperm` field still pass (Parse-Server treats absent `_rperm` as public-default); the knob only suppresses the `“*”` membership in the `$in` set.

Returns:

  • (Boolean)

    when ‘true`, downstream predicate construction (see Parse::ACLScope.match_stage_for and Parse::ACLScope.rewrite_pipeline) suppresses the implicit `“*”` (public) grant. Only meaningful for role-scoped resolutions where the caller wants to see ONLY rows whose `_rperm` explicitly includes one of the resolved role names, not every public-readable row in the collection. Defaults to `false` for backwards compatibility. Note: even with `strict_role: true`, rows with NO `_rperm` field still pass (Parse-Server treats absent `_rperm` as public-default); the knob only suppresses the `“*”` membership in the `$in` set.



67
68
69
70
71
72
# File 'lib/parse/acl_scope.rb', line 67

Resolution = Struct.new(:mode, :permission_strings, :user_id, :session, :strict_role, keyword_init: true) do
  def master?; mode == :master; end
  def session?; mode == :session; end
  def public?; mode == :public; end
  def strict_role?; strict_role == true; end
end

#user_idString?

Returns the resolved user_id, or ‘nil` for `:master` and `:public`.

Returns:

  • (String, nil)

    the resolved user_id, or ‘nil` for `:master` and `:public`.



67
68
69
70
71
72
# File 'lib/parse/acl_scope.rb', line 67

Resolution = Struct.new(:mode, :permission_strings, :user_id, :session, :strict_role, keyword_init: true) do
  def master?; mode == :master; end
  def session?; mode == :session; end
  def public?; mode == :public; end
  def strict_role?; strict_role == true; end
end

Instance Method Details

#master?Boolean

Returns:

  • (Boolean)


68
# File 'lib/parse/acl_scope.rb', line 68

def master?; mode == :master; end

#public?Boolean

Returns:

  • (Boolean)


70
# File 'lib/parse/acl_scope.rb', line 70

def public?; mode == :public; end

#session?Boolean

Returns:

  • (Boolean)


69
# File 'lib/parse/acl_scope.rb', line 69

def session?; mode == :session; end

#strict_role?Boolean

Returns:

  • (Boolean)


71
# File 'lib/parse/acl_scope.rb', line 71

def strict_role?; strict_role == true; end