Module: GraphQL::Permissions::ObjectPermissions

Defined in:
lib/graphql/permissions/object_permissions.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#permissions_typeClass<GraphQL::Schema::Object>? (readonly)



7
8
9
# File 'lib/graphql/permissions/object_permissions.rb', line 7

def permissions_type
  @permissions_type
end

Instance Method Details

#interfaces_with_permissionsArray<Module>



10
11
12
# File 'lib/graphql/permissions/object_permissions.rb', line 10

def interfaces_with_permissions
  interfaces.select { |interface| interface.respond_to?(:permissions_type) && interface.permissions_type }
end

#permissions(&block) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/graphql/permissions/object_permissions.rb', line 14

def permissions(&block)
  unless permissions_type
    @permissions_type = create_permissions_type
    const_set(:PermissionsType, @permissions_type)

    implement_permissions_interfaces
    define_permissions_field
  end

  permissions_type.class_eval(&block)
end