diff --git a/synapse/module_api/__init__.py b/synapse/module_api/__init__.py
index b8455c0341..b5f408d85f 100644
--- a/synapse/module_api/__init__.py
+++ b/synapse/module_api/__init__.py
@@ -44,18 +44,6 @@ from synapse.events.presence_router import (
GET_USERS_FOR_STATES_CALLBACK,
PresenceRouter,
)
-from synapse.events.third_party_rules import (
- CHECK_CAN_DEACTIVATE_USER_CALLBACK,
- CHECK_CAN_SHUTDOWN_ROOM_CALLBACK,
- CHECK_EVENT_ALLOWED_CALLBACK,
- CHECK_THREEPID_CAN_BE_INVITED_CALLBACK,
- CHECK_VISIBILITY_CAN_BE_MODIFIED_CALLBACK,
- ON_CREATE_ROOM_CALLBACK,
- ON_NEW_EVENT_CALLBACK,
- ON_PROFILE_UPDATE_CALLBACK,
- ON_THREEPID_BIND_CALLBACK,
- ON_USER_DEACTIVATION_STATUS_CHANGED_CALLBACK,
-)
from synapse.handlers.account_data import ON_ACCOUNT_DATA_UPDATED_CALLBACK
from synapse.handlers.auth import (
CHECK_3PID_AUTH_CALLBACK,
@@ -103,6 +91,18 @@ from synapse.module_api.callbacks.spamchecker_callbacks import (
USER_MAY_SEND_3PID_INVITE_CALLBACK,
SpamCheckerModuleApiCallbacks,
)
+from synapse.module_api.callbacks.third_party_event_rules import (
+ CHECK_CAN_DEACTIVATE_USER_CALLBACK,
+ CHECK_CAN_SHUTDOWN_ROOM_CALLBACK,
+ CHECK_EVENT_ALLOWED_CALLBACK,
+ CHECK_THREEPID_CAN_BE_INVITED_CALLBACK,
+ CHECK_VISIBILITY_CAN_BE_MODIFIED_CALLBACK,
+ ON_CREATE_ROOM_CALLBACK,
+ ON_NEW_EVENT_CALLBACK,
+ ON_PROFILE_UPDATE_CALLBACK,
+ ON_THREEPID_BIND_CALLBACK,
+ ON_USER_DEACTIVATION_STATUS_CHANGED_CALLBACK,
+)
from synapse.rest.client.login import LoginResponse
from synapse.storage import DataStore
from synapse.storage.background_updates import (
@@ -269,7 +269,6 @@ class ModuleApi:
self._public_room_list_manager = PublicRoomListManager(hs)
self._account_data_manager = AccountDataManager(hs)
- self._third_party_event_rules = hs.get_third_party_event_rules()
self._password_auth_provider = hs.get_password_auth_provider()
self._presence_router = hs.get_presence_router()
self._account_data_handler = hs.get_account_data_handler()
@@ -361,7 +360,7 @@ class ModuleApi:
Added in Synapse v1.39.0.
"""
- return self._third_party_event_rules.register_third_party_rules_callbacks(
+ return self._callbacks.third_party_event_rules.register_third_party_rules_callbacks(
check_event_allowed=check_event_allowed,
on_create_room=on_create_room,
check_threepid_can_be_invited=check_threepid_can_be_invited,
diff --git a/synapse/module_api/callbacks/__init__.py b/synapse/module_api/callbacks/__init__.py
index 1c59f99303..599827af7b 100644
--- a/synapse/module_api/callbacks/__init__.py
+++ b/synapse/module_api/callbacks/__init__.py
@@ -19,6 +19,7 @@ if TYPE_CHECKING:
from .account_validity_callbacks import AccountValidityModuleApiCallbacks
from .spamchecker_callbacks import SpamCheckerModuleApiCallbacks
+from .third_party_event_rules import ThirdPartyEventRulesModuleApiCallbacks
__all__ = [
"AccountValidityModuleApiCallbacks",
@@ -30,3 +31,4 @@ class ModuleApiCallbacks:
def __init__(self, hs: "HomeServer") -> None:
self.account_validity = AccountValidityModuleApiCallbacks()
self.spam_checker = SpamCheckerModuleApiCallbacks(hs)
+ self.third_party_event_rules = ThirdPartyEventRulesModuleApiCallbacks(hs)
diff --git a/synapse/events/third_party_rules.py b/synapse/module_api/callbacks/third_party_event_rules.py
index 9a25ed419b..5c855aa1c6 100644
--- a/synapse/events/third_party_rules.py
+++ b/synapse/module_api/callbacks/third_party_event_rules.py
@@ -138,7 +138,7 @@ def load_legacy_third_party_event_rules(hs: "HomeServer") -> None:
api.register_third_party_rules_callbacks(**hooks)
-class ThirdPartyEventRules:
+class ThirdPartyEventRulesModuleApiCallbacks:
"""Allows server admins to provide a Python module implementing an extra
set of rules to apply when processing events.
@@ -147,8 +147,6 @@ class ThirdPartyEventRules:
"""
def __init__(self, hs: "HomeServer"):
- self.third_party_rules = None
-
self.store = hs.get_datastores().main
self._storage_controllers = hs.get_storage_controllers()
diff --git a/synapse/server.py b/synapse/server.py
index a22b7d6565..d95536782f 100644
--- a/synapse/server.py
+++ b/synapse/server.py
@@ -40,7 +40,6 @@ from synapse.crypto.context_factory import RegularPolicyForHTTPS
from synapse.crypto.keyring import Keyring
from synapse.events.builder import EventBuilderFactory
from synapse.events.presence_router import PresenceRouter
-from synapse.events.third_party_rules import ThirdPartyEventRules
from synapse.events.utils import EventClientSerializer
from synapse.federation.federation_client import FederationClient
from synapse.federation.federation_server import (
@@ -666,10 +665,6 @@ class HomeServer(metaclass=abc.ABCMeta):
return StatsHandler(self)
@cache_in_self
- def get_third_party_event_rules(self) -> ThirdPartyEventRules:
- return ThirdPartyEventRules(self)
-
- @cache_in_self
def get_password_auth_provider(self) -> PasswordAuthProvider:
return PasswordAuthProvider()
|