Skip to content

Use a separate feature flag to update query in members page

What does this MR do and why?

The new query introduced in !203506 (merged) that uses user_group_member_roles table when displaying member roles in members page caused an incident.

This MR introduces use_user_group_member_roles_members_page feature flag to revert back the query used in members page back to the original one without affecting other areas where use_user_group_member_roles feature flag is used (e.g. ee/app/models/preloaders/user_member_roles_in_groups_preloader.rb).

Summary

This MR updates ee/app/models/ee/member.rb to

      override :with_group_group_sharing_access
      def with_group_group_sharing_access(group)
        return super unless ::Feature.enabled?(:use_user_group_member_roles_members_page, ::Feature.current_request)

        #
        # This MR prevents execution of the following query
        #

        super.joins("LEFT OUTER JOIN user_group_member_roles ON members.user_id = user_group_member_roles.user_id \
          AND user_group_member_roles.group_id = group_group_links.shared_group_id \
          AND user_group_member_roles.shared_with_group_id = group_group_links.shared_with_group_id")
      end

References

https://gitlab.com/gitlab-org/gitlab/-/issues/575006+

Screenshots or screen recordings

Before After

How to set up and validate locally

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Eugie Limpin

Merge request reports

Loading