Skip to content

Adjust finder to scope by group

charlie ablett requested to merge 411537-cablett-adjust-finder into master

What does this MR do and why?

Turns out that namespace: group isn't a real argument in ProjectsFinder and what I really wanted was GroupProjectsFinder.

Adjust finder to scope by group.

Database query (e.g. for group 9970):

SELECT "projects".* FROM ((SELECT "projects".* FROM ((SELECT "projects".* FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids @> ('{9970}'))))) projects WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)))
UNION
(SELECT "projects".* FROM "projects" INNER JOIN "project_group_links" ON "projects"."id" = "project_group_links"."project_id" WHERE "project_group_links"."group_id" = 9970 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)))) projects WHERE "projects"."pending_delete" = FALSE AND "projects"."hidden" = FALSE ORDER BY "projects"."id" DESC

https://postgres.ai/console/gitlab/gitlab-production-tunnel-pg12/sessions/19716/commands/64561

Screenshots or screen recordings

See !120979 (merged) for GraphQL query and local testing steps.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #411537 (closed)

Edited by charlie ablett

Merge request reports