Prevent installation of incompatible extensions

This commit is contained in:
Spitap
2024-01-07 11:46:54 +01:00
parent e7995ada3f
commit 6f2ed24c1a
2 changed files with 16 additions and 5 deletions

View File

@@ -21,13 +21,14 @@ COMPATIBILITY_MATRIX = {
"modoboa-sievefilters": ">=1.1.1",
"modoboa-webmail": ">=1.2.0",
},
"2.1.0": {
"modoboa-pdfcredentials": None,
"modoboa-dmarc": None,
"modoboa-imap-migration": None,
},
}
EXTENSIONS_AVAILABILITY = {
"modoboa-contacts": "1.7.4",
}
REMOVED_EXTENSIONS = {
"modoboa-pdfcredentials": "2.1.0",
"modoboa-dmarc": "2.1.0",
"modoboa-imap-migration": "2.1.0"
}

View File

@@ -99,6 +99,16 @@ class Modoboa(base.Installer):
if sys.version_info.major == 2 and sys.version_info.micro < 9:
# Add extra packages to fix the SNI issue
packages += ["pyOpenSSL"]
for extension in list(self.extensions):
if extension in compatibility_matrix.REMOVED_EXTENSIONS.keys():
modoboa_version = self.config.get("modoboa", "version")
if modoboa_version != "latest":
max_version = utils.convert_version_to_int(
compatibility_matrix.REMOVED_EXTENSIONS[extension])
modoboa_v_int = utils.convert_version_to_int(modoboa_version)
if modoboa_v_int < max_version:
continue
self.extensions.remove(extension)
python.install_packages(
packages, self.venv_path,
upgrade=self.upgrade,