• Luke Duncalfe's avatar
    Improve GraphQL Authorization DSL · ccb4edbc
    Luke Duncalfe authored
    Previously GraphQL field authorization happened like this:
    
        class ProjectType
          field :my_field, MyFieldType do
            authorize :permission
          end
        end
    
    This change allowed us to authorize like this instead:
    
        class ProjectType
          field :my_field, MyFieldType, authorize: :permission
        end
    
    A new initializer registers the `authorize` metadata keyword on GraphQL
    Schema Objects and Fields, and we can collect this data within the
    context of Instrumentation like this:
    
        field.metadata[:authorize]
    
    The previous functionality of authorize is still being used for
    mutations, as the #authorize method here is called at during the code
    that executes during the mutation, rather than when a field resolves.
    
    https://gitlab.com/gitlab-org/gitlab-ce/issues/57828
    ccb4edbc
Name
Last commit
Last update
..
environments Loading commit data...
initializers Loading commit data...
locales Loading commit data...
prometheus Loading commit data...
routes Loading commit data...
README.md Loading commit data...
application.rb Loading commit data...
boot.rb Loading commit data...
database.yml.env Loading commit data...
database.yml.mysql Loading commit data...
database.yml.postgresql Loading commit data...
dependency_decisions.yml Loading commit data...
environment.rb Loading commit data...
gitlab.yml.example Loading commit data...
jsdocs.config.js Loading commit data...
karma.config.js Loading commit data...
license_finder.yml Loading commit data...
mail_room.yml Loading commit data...
no_todos_messages.yml Loading commit data...
object_store_settings.rb Loading commit data...
puma.example.development.rb Loading commit data...
redis.cache.yml.example Loading commit data...
redis.queues.yml.example Loading commit data...
redis.shared_state.yml.example Loading commit data...
resque.yml.example Loading commit data...
routes.rb Loading commit data...
secrets.yml.example Loading commit data...
settings.rb Loading commit data...
sidekiq.yml.example Loading commit data...
sidekiq_queues.yml Loading commit data...
spring.rb Loading commit data...
unicorn.rb.example Loading commit data...
unicorn.rb.example.development Loading commit data...
webpack.config.js Loading commit data...