Background

At the moment, a user can mention another user in a discussion thread by typing '@username'. A notification email will be sent to the mentioned user if his/her Synapse email is open for Synapse Notification emails. 

Use case

"For one of the consortia (M2OVE-AD) we have one project with multiple working groups. Each working group has a separate team." Mette, who managing/ providing supports to the consortia via Synapse projects and discussion forum, would like to be able to mention a team (or multiple teams) in a discussion thread so that everyone in the mentioned team are aware of the discussion that relevant to them, and invite them to join the discussion. 

More detailed discussion about the use case are captured in 

Requirements

Mentioning a team would work the same way as mentioning a user in a discussion thread including:

Required Services

To meet the requirements above, we still need the services to:

  1. Look up principals (User and/or Team) base on a prefix.
  2. Look up principal (User or Team) base on username or team_alias.

Also, teamAlias needs to be exposed, and available in API.

Proposed solutions for the missing services

Option 1 - Add a new service

Revisit Unique User and Team Alias API, and redesign it to meet the current needs.

Option 2 - Modify existing API

Notification Email Potential Issues

Problem 1 - Redundant emails

In mentioning a user case, if the user who is mentioned already receive an email because of their subscription, the service will not send them a redundant email.
In mentioning a team, if we send the notification email to the team email address, we would encounter a case where some members subscribed to the forum/thread and already receive an email. The system would just send an email to the team regardless of who is in the team. The notification email via team would be redundant to them. 

Problem 2 - Team's send message permission

Each user can change their profile setting to whether or not they would like to receive notification emails from Synapse. By turning their setting off, they won't receive notification email when someone mentioned them in a thread.

Team's SEND_MESSAGE permission is defined in the team's ACL and is separated from its members' profile settings. What would be the appropriate behavior for user A who is a member of team B?