special case server_notices_mxid
2 files changed, 9 insertions, 1 deletions
diff --git a/synapse/server_notices/resource_limits_server_notices.py b/synapse/server_notices/resource_limits_server_notices.py
index 5987e448b2..84b91aeb5d 100644
--- a/synapse/server_notices/resource_limits_server_notices.py
+++ b/synapse/server_notices/resource_limits_server_notices.py
@@ -173,7 +173,7 @@ class ResourceLimitsServerNotices(object):
referenced_events = pinned_state_event.content.get('pinned')
events = yield self._store.get_events(referenced_events)
- for event_id, event in events.iteritems():
+ for event_id, event in iteritems(events):
if event.type == EventTypes.ServerNoticeLimitReached:
currently_blocked = True
# remove event in case we need to disable blocking later on.
diff --git a/tests/api/test_auth.py b/tests/api/test_auth.py
index 022d81ce3e..c4cbff4e8d 100644
--- a/tests/api/test_auth.py
+++ b/tests/api/test_auth.py
@@ -476,3 +476,11 @@ class AuthTestCase(unittest.TestCase):
self.assertEquals(e.exception.admin_uri, self.hs.config.admin_uri)
self.assertEquals(e.exception.errcode, Codes.RESOURCE_LIMIT_EXCEED)
self.assertEquals(e.exception.code, 403)
+
+ @defer.inlineCallbacks
+ def test_server_notices_mxid_special_cased(self):
+ self.hs.config.hs_disabled = True
+ user = "@user:server"
+ self.hs.config.server_notices_mxid = user
+ self.hs.config.hs_disabled_message = "Reason for being disabled"
+ yield self.auth.check_auth_blocking(user)
|