Resolve "Groups originating from group shares, where the user has access to should appear in the result of the GET /:group_id/transfer_locations API"
What does this MR do and why?
This MR adds the group arising from group shares, where the user has access to transfer another group
to the result of the GET /:group_id/transfer_locations API
.
SQL queries generated
Queries generated are for user: gitlab-qa
(User ID:1614863
), trying to access the API for the group https://gitlab.com/gitlab-org/database-team (Group ID: 6104555
)
Before the feature flag is enabled
Query for 1st page: https://postgres.ai/console/gitlab/gitlab-production-tunnel-pg12/sessions/11787/commands/41793
Query for 20th page: https://postgres.ai/console/gitlab/gitlab-production-tunnel-pg12/sessions/11787/commands/41792
Query for 200th page, with limit 100 per page: https://postgres.ai/console/gitlab/gitlab-production-tunnel-pg12/sessions/11787/commands/41791
After the feature flag is enabled
Query for 1st page: https://postgres.ai/console/gitlab/gitlab-production-tunnel-pg12/sessions/11842/commands/42038
Query for 20th page: https://postgres.ai/console/gitlab/gitlab-production-tunnel-pg12/sessions/11842/commands/42039
Query for 200th page, with limit 100 per page: https://postgres.ai/console/gitlab/gitlab-production-tunnel-pg12/sessions/11842/commands/42040
Kibana dashboard to measure performance: Link
Screenshots or screen recordings
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
How to set up and validate locally
- Login as admin, create groups
- Group A
- Subgroup A
- Group B
- Subgroup B
- Group C
- Subgroup C
- Group A
- Add another user,
User X
as member in Group A and Group B withOwner
access - Go to members page of
Group C
, and inviteGroup A
into this group withOwner
access. This means that userUser X
now hasOwner
access with Group C and its subgroups. So they should be able to transfer a group they own to Group C's hierarchy. - Login as User X
- Access
GET /:group_id_of_group_a/transfer_locations
, you should be able to see Group B and subgroup B in the list.
Previously:
- Group C and Subgroup C does not appear in the list.
Now:
- After enabling the feature flag
include_groups_from_group_shares_in_group_transfer_locations
via Rails console, you can see Group C and Subgroup C in the list.
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 #365221 (closed)