Giter Site home page Giter Site logo

Comments (4)

bricesanchez avatar bricesanchez commented on May 24, 2024 1

Hi @exAspArk!

I just come to the same result of you!

Thanks for your quick support!

from graphql-guard.

exAspArk avatar exAspArk commented on May 24, 2024 1

@bricesanchez awesome! We do the same with policy object :)

Thank you for sharing! 💛

from graphql-guard.

exAspArk avatar exAspArk commented on May 24, 2024

Hey @bricesanchez!

Yes, it should work if you define mutation as GraphQL::ObjectType. For example:

Schema = GraphQL::Schema.define do
  mutation Mutation
end

Mutation = GraphQL::ObjectType.define do
  name "Mutation"
  field :doSomething, field: Mutations::DoSomething.field do
    description "Do something"
    
    guard: ->(_, _, _) { true } 
    
    # Works with policy object as well:
    # RULES = {
    #   Graph::Types::Mutation => {
    #     doSomething: ->(_, _, _) { true }
    #   }
    # }
  end
end

Mutations::DoSomething = GraphQL::Relay::Mutation.define do
  name "DoSomething"

  input_field :id, !types.ID
  return_field :something, Something

  resolve ->(object, inputs, context) do
    something = ...
    {something: something}
  end
end

Please let me know whether it works for you.

from graphql-guard.

bricesanchez avatar bricesanchez commented on May 24, 2024

My solution now stands in a GraphqlPolicy Class

class GraphqlPolicy
  RULES = {
    Types::MutationType => {
      'create_category': ->(obj, inputs, ctx) { ctx[:current_ability].can?(:create, Store::Category) },
      'update_category': ->(obj, inputs, ctx) { ctx[:current_ability].can?(:update, Store::Category) }
    }
  }

[...]

end

from graphql-guard.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.