summary refs log tree commit diff
path: root/synapse/config/third_party_event_rules.py
diff options
context:
space:
mode:
authorBrendan Abolivier <babolivier@matrix.org>2019-06-14 19:38:44 +0100
committerBrendan Abolivier <babolivier@matrix.org>2019-06-14 19:38:44 +0100
commit5c4296b47a9f4c77da99a03c420e12ec33ccd3b0 (patch)
treea93bce0e96ecaef07ba9f4f42b084d75d6442319 /synapse/config/third_party_event_rules.py
parentMerge pull request #5466 from matrix-org/babolivier/fix_deactivation_bg_job (diff)
parentAdd plugin APIs for implementations of custom event rules. (diff)
downloadsynapse-5c4296b47a9f4c77da99a03c420e12ec33ccd3b0.tar.xz
Merge branch 'babolivier/third_party_event_rules' into dinsic
Diffstat (limited to 'synapse/config/third_party_event_rules.py')
-rw-r--r--synapse/config/third_party_event_rules.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/synapse/config/third_party_event_rules.py b/synapse/config/third_party_event_rules.py
new file mode 100644

index 0000000000..a89dd5f98a --- /dev/null +++ b/synapse/config/third_party_event_rules.py
@@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 The Matrix.org Foundation C.I.C. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from synapse.util.module_loader import load_module + +from ._base import Config + + +class ThirdPartyRulesConfig(Config): + def read_config(self, config): + self.third_party_event_rules = None + + provider = config.get("third_party_event_rules", None) + if provider is not None: + self.third_party_event_rules = load_module(provider) + + def default_config(self, **kwargs): + return """\ + # Server admins can define a Python module that implements extra rules for + # allowing or denying incoming events. In order to work, this module needs to + # override the methods defined in synapse/events/third_party_rules.py. + # + # This feature is designed to be used in closed federations only, where each + # participating server enforces the same rules. + # + #third_party_event_rules: + # module: "my_custom_project.SuperRulesSet" + # config: + # example_option: 'things' + """