mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Separate mail setting in mail_in and mail_out + fix domain settings types
This commit is contained in:
parent
d358452a03
commit
4755c1c6d5
1 changed files with 22 additions and 11 deletions
|
@ -531,11 +531,14 @@ def _build_dns_conf(domain):
|
||||||
#########
|
#########
|
||||||
# Email #
|
# Email #
|
||||||
#########
|
#########
|
||||||
if domain["mail"]:
|
if domain["mail_in"]:
|
||||||
|
|
||||||
mail += [
|
mail += [
|
||||||
[name, ttl, "MX", "10 %s." % domain_name],
|
[name, ttl, "MX", "10 %s." % domain_name]
|
||||||
[name, ttl, "TXT", '"v=spf1 a mx -all"'],
|
]
|
||||||
|
|
||||||
|
if domain["mail_out"]:
|
||||||
|
mail += [
|
||||||
|
[name, ttl, "TXT", '"v=spf1 a mx -all"']
|
||||||
]
|
]
|
||||||
|
|
||||||
# DKIM/DMARC record
|
# DKIM/DMARC record
|
||||||
|
@ -772,7 +775,8 @@ def _load_domain_settings(domains=[]):
|
||||||
dns_zone = get_dns_zone_from_domain(domain)
|
dns_zone = get_dns_zone_from_domain(domain)
|
||||||
default_settings = {
|
default_settings = {
|
||||||
"xmpp": is_maindomain,
|
"xmpp": is_maindomain,
|
||||||
"mail": True,
|
"mail_in": True,
|
||||||
|
"mail_out": True,
|
||||||
"dns_zone": dns_zone,
|
"dns_zone": dns_zone,
|
||||||
"ttl": 3600,
|
"ttl": 3600,
|
||||||
}
|
}
|
||||||
|
@ -805,13 +809,15 @@ def domain_setting(domain, key, value=None, delete=False):
|
||||||
Set or get an app setting value
|
Set or get an app setting value
|
||||||
|
|
||||||
Keyword argument:
|
Keyword argument:
|
||||||
value -- Value to set
|
domain -- Domain Name
|
||||||
app -- App ID
|
|
||||||
key -- Key to get/set
|
key -- Key to get/set
|
||||||
|
value -- Value to set
|
||||||
delete -- Delete the key
|
delete -- Delete the key
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
boolean_keys = ["mail_in", "mail_out", "xmpp"]
|
||||||
|
|
||||||
domains = _load_domain_settings([ domain ])
|
domains = _load_domain_settings([ domain ])
|
||||||
|
|
||||||
if not domain in domains.keys():
|
if not domain in domains.keys():
|
||||||
|
@ -834,17 +840,22 @@ def domain_setting(domain, key, value=None, delete=False):
|
||||||
|
|
||||||
# SET
|
# SET
|
||||||
else:
|
else:
|
||||||
|
if key in boolean_keys:
|
||||||
|
value = True if value.lower() in ['true', '1', 't', 'y', 'yes', "iloveynh"] else False
|
||||||
|
|
||||||
if "ttl" == key:
|
if "ttl" == key:
|
||||||
try:
|
try:
|
||||||
ttl = int(value)
|
value = int(value)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
# TODO add locales
|
# TODO add locales
|
||||||
raise YunohostError("invalid_number", value_type=type(ttl))
|
raise YunohostError("invalid_number", value_type=type(value))
|
||||||
|
|
||||||
if ttl < 0:
|
if value < 0:
|
||||||
raise YunohostError("pattern_positive_number", value_type=type(ttl))
|
raise YunohostError("pattern_positive_number", value_type=type(value))
|
||||||
|
|
||||||
|
# Set new value
|
||||||
domain_settings[key] = value
|
domain_settings[key] = value
|
||||||
|
# Save settings
|
||||||
_set_domain_settings(domain, domain_settings)
|
_set_domain_settings(domain, domain_settings)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue