Fixed dict, few fixes

This commit is contained in:
Spitap
2023-04-04 17:48:56 +02:00
committed by Antoine Nguyen
parent 4082d5790d
commit 45870e20ef
3 changed files with 32 additions and 8 deletions

View File

@@ -234,7 +234,7 @@ ConfigDictTemplate = [
{ {
"option": "password", "option": "password",
"default": make_password, "default": make_password,
} },
{ {
"option": "dnsbl", "option": "dnsbl",
"default": "true", "default": "true",

View File

@@ -49,17 +49,24 @@ class Modoboa(base.Installer):
self.instance_path = self.config.get("modoboa", "instance_path") self.instance_path = self.config.get("modoboa", "instance_path")
self.extensions = self.config.get("modoboa", "extensions").split() self.extensions = self.config.get("modoboa", "extensions").split()
self.devmode = self.config.getboolean("modoboa", "devmode") self.devmode = self.config.getboolean("modoboa", "devmode")
# Sanity check for amavis # Sanity check for amavis and rspamd
self.amavis_enabled = False self.amavis_enabled = sanity_check("modoboa-amavis", "amavis")
if "modoboa-amavis" in self.extensions: sanity_check("modoboa-rspamd", "rspamd")
if self.config.getboolean("amavis", "enabled"):
self.amavis_enabled = True
else:
self.extensions.remove("modoboa-amavis")
self.dovecot_enabled = self.config.getboolean("dovecot", "enabled") self.dovecot_enabled = self.config.getboolean("dovecot", "enabled")
self.opendkim_enabled = self.config.getboolean("opendkim", "enabled") self.opendkim_enabled = self.config.getboolean("opendkim", "enabled")
self.dkim_cron_enabled = False self.dkim_cron_enabled = False
def sanity_check(extension, plugin):
# Sanity check for plugin requirements
enabled = False
if extension in self.extensions:
if self.config.getboolean(plugin, "enabled"):
enabled = True
else:
self.extensions.remove(extension)
return enabled
def is_extension_ok_for_version(self, extension, version): def is_extension_ok_for_version(self, extension, version):
"""Check if extension can be installed with this modo version.""" """Check if extension can be installed with this modo version."""
version = utils.convert_version_to_int(version) version = utils.convert_version_to_int(version)

View File

@@ -31,6 +31,23 @@ class Rspamd(base.Installer):
"""Return appropriate config dir.""" """Return appropriate config dir."""
return "/etc/rspamd" return "/etc/rspamd"
def install_config_files(self):
"""Make sure config directory exists."""
user = self.config.get("modoboa", "user")
pw = pwd.getpwnam(user)
targets = [
[self.app_config["dkim_keys_storage_dir"], pw[2], pw[3]]
]
for target in targets:
if not os.path.exists(target[0]):
utils.mkdir(
target[0],
stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP |
stat.S_IROTH | stat.S_IXOTH,
target[1], target[2]
)
super().install_config_files()
def get_config_files(self): def get_config_files(self):
"""Return appropriate config files.""" """Return appropriate config files."""
_config_files = self.config_files _config_files = self.config_files