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...",
|
"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": "[%(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_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",
|
"password_reset": "[%(server_name)s] Password reset",
|
||||||
"email_validation": "[%(server_name)s] Validate your email",
|
"email_validation": "[%(server_name)s] Validate your email",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attr.s(slots=True, frozen=True)
|
||||||
class EmailSubjectConfig:
|
class EmailSubjectConfig:
|
||||||
message_from_person_in_room = attr.ib(type=str)
|
message_from_person_in_room = attr.ib(type=str)
|
||||||
message_from_person = 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)
|
messages_from_person_and_others = attr.ib(type=str)
|
||||||
invite_from_person = attr.ib(type=str)
|
invite_from_person = attr.ib(type=str)
|
||||||
invite_from_person_to_room = 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)
|
password_reset = attr.ib(type=str)
|
||||||
email_validation = 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 bleach
|
||||||
import jinja2
|
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.api.errors import StoreError
|
||||||
from synapse.config.emailconfig import EmailSubjectConfig
|
from synapse.config.emailconfig import EmailSubjectConfig
|
||||||
from synapse.events import EventBase
|
from synapse.events import EventBase
|
||||||
|
@ -600,6 +600,22 @@ class Mailer:
|
||||||
"app": self.app_name,
|
"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 % {
|
return self.email_subjects.invite_from_person_to_room % {
|
||||||
"person": inviter_name,
|
"person": inviter_name,
|
||||||
"room": room_name,
|
"room": room_name,
|
||||||
|
|
Loading…
Reference in New Issue