Hide "Purchase Seats" button in GitLab Duo Admin Area page depending on add-on combination
What does this MR do and why?
For self-managed instances, in the GitLab Duo Admin Area page (/admin/gitlab_duo), we currently have a "Purchase seats" button under the "Seat utilization" card:
This button is present only when the instance has a Duo Pro add-on as the primary Duo add-on (see this order of precedence). However, we don't want to show this button if other specific add-ons are present, as we do not support self-service for them yet. (See the relevant issue below for more information.)
This MR adds the logic necessary to selectively hide the button. This is supported for all self-managed instances on any type of license (online/offline cloud-activated and legacy).
References
- Relevant issue: https://gitlab.com/gitlab-org/gitlab/-/issues/548390+
Screenshots or screen recordings
| Case | Before | After |
|---|---|---|
| Duo Pro + Duo Self-Hosted | ![]() |
![]() |
| Duo Pro only | ![]() |
No change |
| Another Duo tier (e.g. Duo Enterprise) | ![]() |
No change |
How to set up and validate locally
- Start GDK, CDot, and ZSim.
- Enable this feature flag on CustomersDot.
- Create three Ultimate licenses: one with Duo Enterprise; one with Duo Pro; and one with Duo Pro and Duo Self-Hosted.
- Log in as an admin on GDK and navigate to
/admin/gitlab_duo. - For each license: apply it to the instance, then refresh the Admin Area page and confirm the following:
- The "Purchase seats" button should not be visible for
Duo EnterpriseandDuo Pro and Duo Self-Hosted. - The "Purchase seats" button should be visible for
Duo Pro.
- The "Purchase seats" button should not be visible for
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.


