Page MenuHomePhabricator

Support for private participants in Contributions tab (nice to have for MVP)
Closed, ResolvedPublic

Description

User stories

As a user with permission to view private contributions, I want to see all participant activity —including those who registered privately—, so I can understand the full impact of the event without making their information public.

As a private participant, I want to know that my privacy will not be compromised through public tables or summarized data, so I feel safe participating.

As a public participant, I want to understand that some contributions might be hidden due to privacy settings, so I’m not confused by incomplete totals.

Background

This task supports private registrant support as part of the broader Collaborative Contributions MVP, enabling more nuanced control over visibility of contribution data within events. The Contributions tab offers a full activity feed of event contributions, but we should limit showing certain data based on public/private participation. We should aim to establish how private registrant data should be handled in the UI, whether organizers see specific messages, and what data remains hidden.

Acceptance criteria
  • Given a user is viewing the Contributions tab of an event that includes private participants,
    • And the user does not have permission to view private participant data,
      • Then the aggregate statistics must exclude data from private participants,
        • And the contributions table must also exclude rows representing private participant activity.
  • Given there is at least one private participant whose data is not visible to the current viewer,
    • And the current viewer is not a private participant,
      • Then a notice message must appear at the top of the Contributions tab with the copy: "The statistics and contributions listed on this page do not include data from private participants."
  • Given the current viewer is a private participant,
    • And there are other private participants whose data is hidden from them,
      • Then a notice message must appear at the top of the Contributions tab with the copy: "The statistics and contributions listed on this page do not include data from other private participants."
  • Given the current viewer has permission to see private participant data (e.g., the event organizer, the private participant viewing their own data, or a wiki admin),
    • Then no notice message should appear at the top of the Contributions tab,
      • And all private contributions and stats must be visible and included normally in the aggregate and granular data.
  • If someone can see private participant data, there should be the lock icon next to their username in the table view.
    • Note: We may need to consider how the lock icon displays next to the "thanks" link when later implemented.
Designs

Screenshot 2025-08-26 at 3.28.42 PM.png (332×1 px, 151 KB)

Screenshot 2025-08-26 at 3.28.15 PM.png (446×1 px, 162 KB)

Event Timeline

ifried renamed this task from Support for private participants in Contributions tab to Support for private participants in Contributions tab (nice to have for MVP).Aug 26 2025, 7:19 PM
cmelo changed the task status from Open to In Progress.Sep 17 2025, 2:55 PM
cmelo claimed this task.

Change #1189226 had a related patch set uploaded (by Cmelo; author: Cmelo):

[mediawiki/extensions/CampaignEvents@master] Support for private participants in Contributions tab

https://gerrit.wikimedia.org/r/1189226

Change #1189226 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Support for private participants in Contributions tab

https://gerrit.wikimedia.org/r/1189226

Test wiki created on Patch demo by CMelo (WMF) using patch(es) linked to this task:
https://3418ffa02b.catalyst.wmcloud.org/w/

vaughnwalters subscribed.
Acceptance criteria
  • Given a user is viewing the Contributions tab of an event that includes private participants,
    • And the user does not have permission to view private participant data,
      • ✅ Then the aggregate statistics must exclude data from private participants,
        • ✅ And the contributions table must also exclude rows representing private participant activity.
  • Given there is at least one private participant whose data is not visible to the current viewer,
    • ✅ And the current viewer is not a private participant,
      • ✅ Then a notice message must appear at the top of the Contributions tab with the copy: "The statistics and contributions listed on this page do not include data from private participants."
        Screenshot 2025-10-23 at 3.05.17 PM.png (1×1 px, 252 KB)
  • Given the current viewer is a private participant,
    • ✅ And there are other private participants whose data is hidden from them,
      • ✅ Then a notice message must appear at the top of the Contributions tab with the copy: "The statistics and contributions listed on this page do not include data from other private participants."
        Screenshot 2025-10-23 at 3.04.23 PM.png (1×1 px, 274 KB)
  • Given the current viewer has permission to see private participant data (e.g., the event organizer, the private participant viewing their own data, or a wiki admin),
    • ✅ Then no notice message should appear at the top of the Contributions tab,
      • ✅ And all private contributions and stats must be visible and included normally in the aggregate and granular data.
        Screenshot 2025-10-23 at 3.00.01 PM.png (1×1 px, 332 KB)
  • ❌ If someone can see private participant data, there should be the lock icon next to their username in the table view.
    • QA note: When I am logged in as someone who can see private participant data, and there is private participant data, here are currently no locks next to any usernames. I created followup task T408257 but checking to make sure I am not missing something here before sending this off to design sign off. @MHorsey-WMF
      Screenshot 2025-10-23 at 2.58.57 PM.png (1×1 px, 292 KB)

Followup ticket T408257 is in progress and everything else in this ticket meets AC, so I am sending this to product sign off.