Update the notification email subject when invited to a space. (#10426)
parent
b2629e7016
commit
d15e72e511
|
@ -0,0 +1 @@
|
|||
Email notifications now state whether an invitation is to a room or a space.
|
|
@ -39,12 +39,13 @@ DEFAULT_SUBJECTS = {
|
|||
"messages_from_person_and_others": "[%(app)s] You have messages on %(app)s from %(person)s and others...",
|
||||
"invite_from_person": "[%(app)s] %(person)s has invited you to chat on %(app)s...",
|
||||
"invite_from_person_to_room": "[%(app)s] %(person)s has invited you to join the %(room)s room on %(app)s...",
|
||||
"invite_from_person_to_space": "[%(app)s] %(person)s has invited you to join the %(space)s space on %(app)s...",
|
||||
"password_reset": "[%(server_name)s] Password reset",
|
||||
"email_validation": "[%(server_name)s] Validate your email",
|
||||
}
|
||||
|
||||
|
||||
@attr.s
|
||||
@attr.s(slots=True, frozen=True)
|
||||
class EmailSubjectConfig:
|
||||
message_from_person_in_room = attr.ib(type=str)
|
||||
message_from_person = attr.ib(type=str)
|
||||
|
@ -54,6 +55,7 @@ class EmailSubjectConfig:
|
|||
messages_from_person_and_others = attr.ib(type=str)
|
||||
invite_from_person = attr.ib(type=str)
|
||||
invite_from_person_to_room = attr.ib(type=str)
|
||||
invite_from_person_to_space = attr.ib(type=str)
|
||||
password_reset = attr.ib(type=str)
|
||||
email_validation = attr.ib(type=str)
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, TypeVar
|
|||
import bleach
|
||||
import jinja2
|
||||
|
||||
from synapse.api.constants import EventTypes, Membership
|
||||
from synapse.api.constants import EventTypes, Membership, RoomTypes
|
||||
from synapse.api.errors import StoreError
|
||||
from synapse.config.emailconfig import EmailSubjectConfig
|
||||
from synapse.events import EventBase
|
||||
|
@ -600,6 +600,22 @@ class Mailer:
|
|||
"app": self.app_name,
|
||||
}
|
||||
|
||||
# If the room is a space, it gets a slightly different topic.
|
||||
create_event_id = room_state_ids.get(("m.room.create", ""))
|
||||
if create_event_id:
|
||||
create_event = await self.store.get_event(
|
||||
create_event_id, allow_none=True
|
||||
)
|
||||
if (
|
||||
create_event
|
||||
and create_event.content.get("room_type") == RoomTypes.SPACE
|
||||
):
|
||||
return self.email_subjects.invite_from_person_to_space % {
|
||||
"person": inviter_name,
|
||||
"space": room_name,
|
||||
"app": self.app_name,
|
||||
}
|
||||
|
||||
return self.email_subjects.invite_from_person_to_room % {
|
||||
"person": inviter_name,
|
||||
"room": room_name,
|
||||
|
|
Loading…
Reference in New Issue