diff --git a/synapse/push/mailer.py b/synapse/push/mailer.py
index 53551632b6..62d794f22b 100644
--- a/synapse/push/mailer.py
+++ b/synapse/push/mailer.py
@@ -81,7 +81,7 @@ class Mailer(object):
def __init__(self, hs, app_name):
self.hs = hs
self.store = self.hs.get_datastore()
- self.auth_handler = self.hs.get_auth_handler()
+ self.macaroon_gen = self.hs.get_macaroon_generator()
self.state_handler = self.hs.get_state_handler()
loader = jinja2.FileSystemLoader(self.hs.config.email_template_dir)
self.app_name = app_name
@@ -439,15 +439,23 @@ class Mailer(object):
})
def make_room_link(self, room_id):
- # need /beta for Universal Links to work on iOS
- if self.app_name == "Vector":
- return "https://vector.im/beta/#/room/%s" % (room_id,)
+ if self.hs.config.email_riot_base_url:
+ base_url = self.hs.config.email_riot_base_url
+ elif self.app_name == "Vector":
+ # need /beta for Universal Links to work on iOS
+ base_url = "https://vector.im/beta/#/room"
else:
- return "https://matrix.to/#/%s" % (room_id,)
+ base_url = "https://matrix.to/#"
+ return "%s/%s" % (base_url, room_id)
def make_notif_link(self, notif):
- # need /beta for Universal Links to work on iOS
- if self.app_name == "Vector":
+ if self.hs.config.email_riot_base_url:
+ return "%s/#/room/%s/%s" % (
+ self.hs.config.email_riot_base_url,
+ notif['room_id'], notif['event_id']
+ )
+ elif self.app_name == "Vector":
+ # need /beta for Universal Links to work on iOS
return "https://vector.im/beta/#/room/%s/%s" % (
notif['room_id'], notif['event_id']
)
@@ -458,7 +466,7 @@ class Mailer(object):
def make_unsubscribe_link(self, user_id, app_id, email_address):
params = {
- "access_token": self.auth_handler.generate_delete_pusher_token(user_id),
+ "access_token": self.macaroon_gen.generate_delete_pusher_token(user_id),
"app_id": app_id,
"pushkey": email_address,
}
diff --git a/synapse/push/push_tools.py b/synapse/push/push_tools.py
index b47bf1f92b..a27476bbad 100644
--- a/synapse/push/push_tools.py
+++ b/synapse/push/push_tools.py
@@ -52,7 +52,7 @@ def get_badge_count(store, user_id):
def get_context_for_event(store, state_handler, ev, user_id):
ctx = {}
- room_state_ids = yield state_handler.get_current_state_ids(ev.room_id)
+ room_state_ids = yield store.get_state_ids_for_event(ev.event_id)
# we no longer bother setting room_alias, and make room_name the
# human-readable name instead, be that m.room.name, an alias or
|