Repurpose achievements_enabled as a global award opt-out

What does this MR do and why?

Repurposes user_preferences.achievements_enabled from "display achievements on profile" to "allow others to award me achievements", providing an explicit global opt-out of receiving new achievement awards.

  • Achievements::AwardService now returns an error if the recipient has achievements_enabled: false, preventing the award and notification.
  • The profile settings checkbox label is updated to reflect the new meaning.
  • The achievements_enabled gate is removed from the profile sidebar so existing awarded achievements remain visible regardless of the preference.
  • locale/gitlab.pot updated for the new i18n string.

References

Closes #593740

Screenshots or screen recordings

Screenshot 2026-03-19 at 14.42.31.png

How to set up and validate locally

  1. Visit /-/user_settings/profile and confirm the checkbox reads "Allow others to award me achievements".
  2. Uncheck the box and save.
  3. Attempt to award that user an achievement via the group achievements page. Confirm an error is returned and no award is created.
  4. Visit the user's profile and confirm their existing achievements are still displayed.

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 Mattias Michaux

Merge request reports

Loading