Add support for synapse-http-antispam module

This commit is contained in:
Catalan Lover
2025-04-27 22:29:33 +02:00
parent 7b2c56aa39
commit 6c29f67f7e
7 changed files with 153 additions and 1 deletions

View File

@@ -66,6 +66,19 @@
- when: matrix_synapse_ext_spam_checker_mjolnir_antispam_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/ext/mjolnir-antispam/setup_install.yml"
# synapse-http-antispam
- tags:
- setup-all
- setup-synapse
- install-all
- install-synapse
block:
- when: matrix_synapse_ext_synapse_http_antispam_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/ext/synapse-http-antispam/validate_config.yml"
- when: matrix_synapse_ext_synapse_http_antispam_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/ext/synapse-http-antispam/setup_install.yml"
# s3-storage-provider
- tags:
- setup-all

View File

@@ -0,0 +1,37 @@
# SPDX-FileCopyrightText: 2025 MDAD project contributors
# SPDX-FileCopyrightText: 2025 Catalan Lover <catalanlover@protonmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
- name: Ensure git installed
ansible.builtin.package:
name: git
state: present
- name: Clone synapse-http-antispam git repository
ansible.builtin.git:
repo: "{{ matrix_synapse_ext_synapse_http_antispam_git_repository_url }}"
version: "{{ matrix_synapse_ext_synapse_http_antispam_git_version }}"
dest: "{{ matrix_synapse_ext_path }}/synapse-http-antispam"
become: true
become_user: "{{ matrix_synapse_username }}"
- ansible.builtin.set_fact:
matrix_synapse_modules: >
{{
matrix_synapse_modules | default([])
+
[{
"module": "synapse_http_antispam.HTTPAntispam",
"config": matrix_synapse_ext_synapse_http_antispam_config,
}]
}}
matrix_synapse_container_extra_arguments: >
{{
matrix_synapse_container_extra_arguments | default([])
+
["--mount type=bind,src={{ matrix_synapse_ext_path }}/synapse-http-antispam/synapse_http_antispam.py,dst={{ matrix_synapse_in_container_python_packages_path }}/synapse_http_antispam.py,ro"]
}}

View File

@@ -0,0 +1,11 @@
# SPDX-FileCopyrightText: 2025 MDAD project contributors
# SPDX-FileCopyrightText: 2025 Catalan Lover <catalanlover@protonmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
- name: Ensure synapse-http-antispam doesn't exist
ansible.builtin.file:
path: "{{ matrix_synapse_ext_path }}/synapse-http-antispam"
state: absent

View File

@@ -0,0 +1,21 @@
# SPDX-FileCopyrightText: 2025 MDAD project contributors
# SPDX-FileCopyrightText: 2025 Catalan Lover <catalanlover@protonmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
- name: Fail if required synapse-http-antispam settings not defined
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`) for using synapse-http-antispam.
when: "vars[item] == ''"
with_items:
- "matrix_synapse_ext_synapse_http_antispam_enabled"
- "matrix_synapse_ext_synapse_http_antispam_config_base_url"
- "matrix_synapse_ext_synapse_http_antispam_config_authorization"
- name: Fail if required matrix_synapse_ext_synapse_http_antispam_config_base_url looks invalid
ansible.builtin.fail:
msg: >-
`matrix_synapse_ext_synapse_http_antispam_config_base_url` needs to look like a URL (`http://` or `https://` prefix).
when: "not matrix_synapse_ext_synapse_http_antispam_config_base_url.startswith('http')"