summary refs log tree commit diff
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2020-10-05 20:27:14 +0100
committerRichard van der Hoff <richard@matrix.org>2020-10-05 20:29:52 +0100
commit4cd1448d0e16d19a1f255ed6746a7372221e84cd (patch)
tree1f11f6c6d8b5287dc343ead9503ed787aa8da4e7
parentEnsure that event.redacts is the proper type before handling it (#8457) (diff)
downloadsynapse-4cd1448d0e16d19a1f255ed6746a7372221e84cd.tar.xz
Fix third-party event modules for `check_visibility_can_be_modified` check
PR #8292 tried to maintain backwards compat with modules which don't provide a
`check_visibility_can_be_modified` method, but the tests weren't being run,
and the check didn't work.
-rw-r--r--changelog.d/8467.feature1
-rw-r--r--synapse/events/third_party_rules.py4
-rw-r--r--tests/rest/client/test_third_party_rules.py (renamed from tests/rest/client/third_party_rules.py)2
3 files changed, 5 insertions, 2 deletions
diff --git a/changelog.d/8467.feature b/changelog.d/8467.feature
new file mode 100644
index 0000000000..6d0335e2c8
--- /dev/null
+++ b/changelog.d/8467.feature
@@ -0,0 +1 @@
+Allow `ThirdPartyEventRules` modules to query and manipulate whether a room is in the public rooms directory.
\ No newline at end of file
diff --git a/synapse/events/third_party_rules.py b/synapse/events/third_party_rules.py
index fed459198a..1ca77519d5 100644
--- a/synapse/events/third_party_rules.py
+++ b/synapse/events/third_party_rules.py
@@ -131,7 +131,9 @@ class ThirdPartyEventRules:
         if self.third_party_rules is None:
             return True
 
-        check_func = getattr(self.third_party_rules, "check_visibility_can_be_modified")
+        check_func = getattr(
+            self.third_party_rules, "check_visibility_can_be_modified", None
+        )
         if not check_func or not isinstance(check_func, Callable):
             return True
 
diff --git a/tests/rest/client/third_party_rules.py b/tests/rest/client/test_third_party_rules.py
index 715e87de08..7b322f526c 100644
--- a/tests/rest/client/third_party_rules.py
+++ b/tests/rest/client/test_third_party_rules.py
@@ -49,7 +49,7 @@ class ThirdPartyRulesTestCase(unittest.HomeserverTestCase):
     def make_homeserver(self, reactor, clock):
         config = self.default_config()
         config["third_party_event_rules"] = {
-            "module": "tests.rest.client.third_party_rules.ThirdPartyRulesTestModule",
+            "module": __name__ + ".ThirdPartyRulesTestModule",
             "config": {},
         }