Adjust finder to scope by group
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.
-
I have evaluated the MR acceptance checklist for this MR.
Related to #411537 (closed)
Edited by charlie ablett