Class: ActiveAdmin::GraphQL::AuthContext

Inherits:
Object
  • Object
show all
Defined in:
lib/active_admin/graphql/auth_context.rb

Overview

Authorization adapter wrapper for GraphQL context.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(user:, namespace:) ⇒ AuthContext

Returns a new instance of AuthContext.



9
10
11
12
13
# File 'lib/active_admin/graphql/auth_context.rb', line 9

def initialize(user:, namespace:)
  @user = user
  @namespace = namespace
  @adapter_by_resource_id = {}
end

Instance Attribute Details

#namespaceObject (readonly)

Returns the value of attribute namespace.



7
8
9
# File 'lib/active_admin/graphql/auth_context.rb', line 7

def namespace
  @namespace
end

#userObject (readonly)

Returns the value of attribute user.



7
8
9
# File 'lib/active_admin/graphql/auth_context.rb', line 7

def user
  @user
end

Instance Method Details

#adapter_for(aa_resource) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/active_admin/graphql/auth_context.rb', line 15

def adapter_for(aa_resource)
  @adapter_by_resource_id[aa_resource.object_id] ||= begin
    klass = namespace.authorization_adapter
    klass = klass.constantize if klass.is_a?(String)
    klass.new(aa_resource, user)
  end
end

#authorized?(aa_resource, action, subject = nil) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/active_admin/graphql/auth_context.rb', line 23

def authorized?(aa_resource, action, subject = nil)
  adapter_for(aa_resource).authorized?(action, subject)
end

#scope_collection(aa_resource, relation, action = ActiveAdmin::Authorization::READ) ⇒ Object

Delegates to the namespace authorization adapter. Built-in resolvers scope collections through ResourceController instead of calling this; it remains available for custom schema extensions or host-app glue code.



30
31
32
# File 'lib/active_admin/graphql/auth_context.rb', line 30

def scope_collection(aa_resource, relation, action = ActiveAdmin::Authorization::READ)
  adapter_for(aa_resource).scope_collection(relation, action)
end