Rescue from AccessDeniedError in GraphQL consistently
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
The REST API rescues from Gitlab::Access::AccessDeniedError consistently.
The GraphQL API however does not, and each mutation/resolver currently needs to rescue from AccessDeniedError individually:
% ag -A 2 -B 2 'rescue Gitlab::Access::AccessDeniedError' app/graphql/ ee/app/graphql/
app/graphql/mutations/branch_rules/create.rb
33- { errors: errors_on_object(protected_branch) }
34- end
35: rescue Gitlab::Access::AccessDeniedError
36- raise_resource_not_available_error!
37- end
app/graphql/mutations/members/bulk_update_base.rb
35- errors: Array.wrap(result[:message])
36- }
37: rescue Gitlab::Access::AccessDeniedError
38- {
39- errors: ["Unable to update members, please check user permissions."]
app/graphql/resolvers/ci/runners_resolver.rb
63- .new(current_user: current_user, params: runners_finder_params(args))
64- .execute)
65: rescue Gitlab::Access::AccessDeniedError
66- handle_access_denied_error!
67- end
ee/app/graphql/mutations/vulnerabilities/bulk_dismiss.rb
44- errors: response.success? ? [] : [response.message]
45- }
46: rescue Gitlab::Access::AccessDeniedError
47- raise_resource_not_available_error!
48- end
ee/app/graphql/mutations/approval_project_rules/delete.rb
25- errors: approval_rule.errors.full_messages
26- }
27: rescue Gitlab::Access::AccessDeniedError
28- raise_resource_not_available_error!
29- end
ee/app/graphql/resolvers/remote_development/agents_for_namespace_resolver.rb
30- user: current_user
31- )
32: rescue Gitlab::Access::AccessDeniedError
33- raise_resource_not_available_error!
34- end
The GraphQL API should also handle AccessDeniedError in a central place.
Edited by 🤖 GitLab Bot 🤖