Module: GraphQL::Pundit::Authorization
- Included in:
- Field
- Defined in:
- lib/graphql-pundit/authorization.rb
Overview
Authorization methods to be included in the used Field class
Class Method Summary collapse
Instance Method Summary collapse
- #authorize(*args, record: nil, policy: nil) ⇒ Object
- #authorize!(*args, record: nil, policy: nil) ⇒ Object
- #initialize(*args, authorize: nil, record: nil, policy: nil, **kwargs, &block) ⇒ Object
- #resolve(obj, args, ctx) ⇒ Object (also: #resolve_field)
Class Method Details
Instance Method Details
#authorize(*args, record: nil, policy: nil) ⇒ Object
27 28 29 30 31 |
# File 'lib/graphql-pundit/authorization.rb', line 27 def (*args, record: nil, policy: nil) @authorize = args[0] || true @record = record if record @policy = policy if policy end |
#authorize!(*args, record: nil, policy: nil) ⇒ Object
33 34 35 36 |
# File 'lib/graphql-pundit/authorization.rb', line 33 def (*args, record: nil, policy: nil) @do_raise = true (*args, record: record, policy: policy) end |
#initialize(*args, authorize: nil, record: nil, policy: nil, **kwargs, &block) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/graphql-pundit/authorization.rb', line 13 def initialize(*args, authorize: nil, record: nil, policy: nil, **kwargs, &block) # authorize! is not a valid variable name = kwargs.delete(:authorize!) @record = record if record @policy = policy if policy @authorize = || @do_raise = !! super(*args, policy: policy, record: record, **kwargs, &block) end |
#resolve(obj, args, ctx) ⇒ Object Also known as: resolve_field
38 39 40 41 42 43 44 |
# File 'lib/graphql-pundit/authorization.rb', line 38 def resolve(obj, args, ctx) raise ::Pundit::NotAuthorizedError unless (obj, args, ctx) super(obj, args, ctx) rescue ::Pundit::NotAuthorizedError raise GraphQL::ExecutionError, "You're not authorized to do this" if @do_raise end |