Prevent installation of incompatible extensions
This commit is contained in:
@@ -21,13 +21,14 @@ COMPATIBILITY_MATRIX = {
|
|||||||
"modoboa-sievefilters": ">=1.1.1",
|
"modoboa-sievefilters": ">=1.1.1",
|
||||||
"modoboa-webmail": ">=1.2.0",
|
"modoboa-webmail": ">=1.2.0",
|
||||||
},
|
},
|
||||||
"2.1.0": {
|
|
||||||
"modoboa-pdfcredentials": None,
|
|
||||||
"modoboa-dmarc": None,
|
|
||||||
"modoboa-imap-migration": None,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EXTENSIONS_AVAILABILITY = {
|
EXTENSIONS_AVAILABILITY = {
|
||||||
"modoboa-contacts": "1.7.4",
|
"modoboa-contacts": "1.7.4",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
REMOVED_EXTENSIONS = {
|
||||||
|
"modoboa-pdfcredentials": "2.1.0",
|
||||||
|
"modoboa-dmarc": "2.1.0",
|
||||||
|
"modoboa-imap-migration": "2.1.0"
|
||||||
|
}
|
||||||
|
|||||||
@@ -99,6 +99,16 @@ class Modoboa(base.Installer):
|
|||||||
if sys.version_info.major == 2 and sys.version_info.micro < 9:
|
if sys.version_info.major == 2 and sys.version_info.micro < 9:
|
||||||
# Add extra packages to fix the SNI issue
|
# Add extra packages to fix the SNI issue
|
||||||
packages += ["pyOpenSSL"]
|
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(
|
python.install_packages(
|
||||||
packages, self.venv_path,
|
packages, self.venv_path,
|
||||||
upgrade=self.upgrade,
|
upgrade=self.upgrade,
|
||||||
|
|||||||
Reference in New Issue
Block a user