Merge branch 'develop' of github.com:matrix-org/synapse into erikj/timings
commit
9e7fc33d93
|
@ -120,6 +120,24 @@ class Auth(object):
|
||||||
return allowed
|
return allowed
|
||||||
|
|
||||||
self.check_event_sender_in_room(event, auth_events)
|
self.check_event_sender_in_room(event, auth_events)
|
||||||
|
|
||||||
|
# Special case to allow m.room.third_party_invite events wherever
|
||||||
|
# a user is allowed to issue invites. Fixes
|
||||||
|
# https://github.com/vector-im/vector-web/issues/1208 hopefully
|
||||||
|
if event.type == EventTypes.ThirdPartyInvite:
|
||||||
|
user_level = self._get_user_power_level(event.user_id, auth_events)
|
||||||
|
invite_level = self._get_named_level(auth_events, "invite", 0)
|
||||||
|
|
||||||
|
if user_level < invite_level:
|
||||||
|
raise AuthError(
|
||||||
|
403, (
|
||||||
|
"You cannot issue a third party invite for %s." %
|
||||||
|
(event.content.display_name,)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
self._can_send_event(event, auth_events)
|
self._can_send_event(event, auth_events)
|
||||||
|
|
||||||
if event.type == EventTypes.PowerLevels:
|
if event.type == EventTypes.PowerLevels:
|
||||||
|
|
|
@ -72,7 +72,12 @@ class EmailPusher(object):
|
||||||
self.processing = False
|
self.processing = False
|
||||||
|
|
||||||
if self.hs.config.email_enable_notifs:
|
if self.hs.config.email_enable_notifs:
|
||||||
self.mailer = Mailer(self.hs)
|
if 'data' in pusherdict and 'brand' in pusherdict['data']:
|
||||||
|
app_name = pusherdict['data']['brand']
|
||||||
|
else:
|
||||||
|
app_name = self.hs.config.email_app_name
|
||||||
|
|
||||||
|
self.mailer = Mailer(self.hs, app_name)
|
||||||
else:
|
else:
|
||||||
self.mailer = None
|
self.mailer = None
|
||||||
|
|
||||||
|
|
|
@ -78,12 +78,12 @@ ALLOWED_ATTRS = {
|
||||||
|
|
||||||
|
|
||||||
class Mailer(object):
|
class Mailer(object):
|
||||||
def __init__(self, hs):
|
def __init__(self, hs, app_name):
|
||||||
self.hs = hs
|
self.hs = hs
|
||||||
self.store = self.hs.get_datastore()
|
self.store = self.hs.get_datastore()
|
||||||
self.state_handler = self.hs.get_state_handler()
|
self.state_handler = self.hs.get_state_handler()
|
||||||
loader = jinja2.FileSystemLoader(self.hs.config.email_template_dir)
|
loader = jinja2.FileSystemLoader(self.hs.config.email_template_dir)
|
||||||
self.app_name = self.hs.config.email_app_name
|
self.app_name = app_name
|
||||||
env = jinja2.Environment(loader=loader)
|
env = jinja2.Environment(loader=loader)
|
||||||
env.filters["format_ts"] = format_ts_filter
|
env.filters["format_ts"] = format_ts_filter
|
||||||
env.filters["mxc_to_http"] = self.mxc_to_http_filter
|
env.filters["mxc_to_http"] = self.mxc_to_http_filter
|
||||||
|
@ -122,6 +122,8 @@ class Mailer(object):
|
||||||
user_display_name = yield self.store.get_profile_displayname(
|
user_display_name = yield self.store.get_profile_displayname(
|
||||||
UserID.from_string(user_id).localpart
|
UserID.from_string(user_id).localpart
|
||||||
)
|
)
|
||||||
|
if user_display_name is None:
|
||||||
|
user_display_name = user_id
|
||||||
except StoreError:
|
except StoreError:
|
||||||
user_display_name = user_id
|
user_display_name = user_id
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue