diff --git a/pikatasks/settings.py b/pikatasks/settings.py index d9b942ccfb3a1a63034d57876c33ca6aeda1639c..15d997ad62beb446fbed6d67773f303e7de33846 100644 --- a/pikatasks/settings.py +++ b/pikatasks/settings.py @@ -7,6 +7,7 @@ Change settings: pikatasks.settings.BROKER = "localhost" """ +import ssl from datetime import timedelta @@ -27,8 +28,10 @@ SSL_CONF = { # "keyfile": "/foo/client/key.pem", # "certfile": "/foo/client/cert.pem", # "ca_certs": "/foo/ca/cacert.pem", - # "ssl_version": ssl.PROTOCOL_TLSv1_2, - # "cert_reqs": ssl.CERT_NONE, + # NOTE: The following values are not meant to be changed through settings + # because this would be a mess in deployment! + "ssl_version": ssl.PROTOCOL_TLSv1_2, + "cert_reqs": ssl.CERT_NONE, } # stuff you might want to change sometimes: @@ -48,7 +51,11 @@ try: if k.isupper() and not k.startswith("_"): # looks like a setting try: new_value = getattr(django_settings, "PIKATASKS_" + k) - globals()[k] = new_value + if isinstance(globals()[k], dict): + assert isinstance(new_value, dict), "{} needs to be a dictionary".format(k) + globals()[k].update(new_value) + else: + globals()[k] = new_value except ImproperlyConfigured: pass # django is installed but not used except AttributeError: