|
1 | 1 | # Django settings for OS2borgerPC admin project.
|
2 | 2 |
|
3 | 3 | import os
|
4 |
| -import configparser |
5 | 4 | import logging
|
6 | 5 | import django
|
7 | 6 |
|
|
15 | 14 | # Our customized user profile.
|
16 | 15 | AUTH_PROFILE_MODULE = "account.UserProfile"
|
17 | 16 |
|
18 |
| -config = configparser.ConfigParser() |
19 |
| -config["settings"] = {} |
20 |
| - |
21 |
| -# We load settings from a file. The fallback values in this |
22 |
| -# `settings.py` is overwritten by the values defined in the file |
23 |
| -# the env var `BPC_USER_CONFIG_PATH` points to. |
24 |
| - |
25 |
| -# The `BPC_USER_CONFIG_PATH` file is for settings that should generally |
26 |
| -# be unique to an instance deployment. |
27 |
| - |
28 |
| -path = os.getenv("BPC_USER_CONFIG_PATH", None) |
29 |
| -if path: |
30 |
| - try: |
31 |
| - with open(path) as fp: |
32 |
| - config.read_file(fp) |
33 |
| - logger.info("Loaded settings file BPC_USER_CONFIG_PATH from %s" % (path)) |
34 |
| - except OSError as e: |
35 |
| - logger.error( |
36 |
| - "Loading settings file BPC_USER_CONFIG_PATH from %s failed with %s." |
37 |
| - % (path, e) |
38 |
| - ) |
39 |
| - |
40 |
| -# use settings section as default |
41 |
| -settings = config["settings"] |
42 |
| - |
43 |
| - |
44 |
| -DEBUG = settings.getboolean("DEBUG", False) |
| 17 | +DEBUG = os.getenv("DEBUG", 'false').lower() == 'true' |
45 | 18 |
|
46 | 19 | ADMINS = (
|
47 | 20 | [
|
48 |
| - (settings.get("ADMIN_NAME"), settings["ADMIN_EMAIL"]), |
| 21 | + (os.environ.get("ADMIN_USERNAME"), os.environ["ADMIN_EMAIL"]), |
49 | 22 | ]
|
50 |
| - if settings.get("ADMIN_EMAIL") |
| 23 | + if os.environ.get("ADMIN_EMAIL") |
51 | 24 | else None
|
52 | 25 | )
|
53 | 26 |
|
54 | 27 | MANAGERS = ADMINS
|
55 | 28 |
|
56 |
| - |
57 | 29 | # Template settings
|
58 | 30 | TEMPLATES = [
|
59 | 31 | {
|
|
87 | 59 | "USER": os.environ['DB_USER'],
|
88 | 60 | "PASSWORD": os.environ['DB_PASSWORD'],
|
89 | 61 | "HOST": os.environ['DB_HOST'],
|
90 |
| - "PORT": os.environ['DB_PORT'], |
| 62 | + "PORT": os.getenv("DB_PORT", ""), |
91 | 63 | "OPTIONS": {
|
92 | 64 | "connect_timeout": 2, # Minimum in 2
|
93 | 65 | },
|
|
96 | 68 |
|
97 | 69 | # Hosts/domain names that are valid for this site; required if DEBUG is False
|
98 | 70 | # See https://docs.djangoproject.com/en/3.1/ref/settings/#allowed-hosts
|
99 |
| -if settings.get("ALLOWED_HOSTS"): |
100 |
| - ALLOWED_HOSTS = settings.get("ALLOWED_HOSTS").split(",") |
101 |
| -else: |
102 |
| - ALLOWED_HOSTS = [] |
| 71 | +ALLOWED_HOSTS = os.getenv("ALLOWED_HOSTS", "").split(",") |
103 | 72 |
|
104 | 73 | # Django > 4.0 introduced changes related to CSRF. Note that the protocol has to be specified too.
|
105 | 74 | # https://docs.djangoproject.com/en/4.2/releases/4.0/#csrf
|
106 | 75 | # https://docs.djangoproject.com/en/4.2/ref/settings/#csrf-trusted-origins
|
107 |
| -if settings.get("CSRF_TRUSTED_ORIGINS"): |
108 |
| - CSRF_TRUSTED_ORIGINS = settings.get("CSRF_TRUSTED_ORIGINS").split(",") |
| 76 | +if os.getenv("CSRF_TRUSTED_ORIGINS", ""): |
| 77 | + CSRF_TRUSTED_ORIGINS = os.getenv("CSRF_TRUSTED_ORIGINS", "").split(",") |
109 | 78 | else:
|
110 | 79 | CSRF_TRUSTED_ORIGINS = []
|
111 | 80 |
|
|
114 | 83 | # although not all choices may be available on all operating systems.
|
115 | 84 | # In a Windows environment this must be set to your system time zone.
|
116 | 85 | # Timezone/Language
|
117 |
| -TIME_ZONE = settings["TIME_ZONE"] |
| 86 | +TIME_ZONE = os.environ["TIME_ZONE"] |
118 | 87 |
|
119 | 88 | # Language code for this installation. All choices can be found here:
|
120 | 89 | # http://www.i18nguy.com/unicode/language-identifiers.html
|
121 |
| -LANGUAGE_CODE = settings["LANGUAGE_CODE"] |
| 90 | +LANGUAGE_CODE = os.environ["LANGUAGE_CODE"] |
122 | 91 |
|
123 | 92 | LOCALE_PATHS = [os.path.join(install_dir, "locale")]
|
124 | 93 |
|
|
172 | 141 |
|
173 | 142 |
|
174 | 143 | # Storage setup
|
175 |
| -if settings.get("GS_BUCKET_NAME"): |
| 144 | +if os.environ.get("GS_BUCKET_NAME"): |
176 | 145 | # The Google Cloud Storage bucket name. For `django-storages[google]`
|
177 | 146 | # https://django-storages.readthedocs.io/en/latest/backends/gcloud.html
|
178 | 147 | # If it is set, we save all files to Google Cloud.
|
179 | 148 | DEFAULT_FILE_STORAGE = "storages.backends.gcloud.GoogleCloudStorage"
|
180 |
| - GS_BUCKET_NAME = settings.get("GS_BUCKET_NAME") |
| 149 | + GS_BUCKET_NAME = os.environ.get("GS_BUCKET_NAME") |
181 | 150 | GS_CREDENTIALS = service_account.Credentials.from_service_account_file(
|
182 |
| - settings.get("GS_CREDENTIALS_FILE") |
| 151 | + os.environ.get("GS_CREDENTIALS_FILE") |
183 | 152 | )
|
184 | 153 | GS_QUERYSTRING_AUTH = False
|
185 | 154 | GS_FILE_OVERWRITE = False
|
186 |
| - GS_CUSTOM_ENDPOINT = settings.get("GS_CUSTOM_ENDPOINT", None) |
| 155 | + GS_CUSTOM_ENDPOINT = os.environ.get("GS_CUSTOM_ENDPOINT", None) |
187 | 156 |
|
188 | 157 | # Make this unique, and don't share it with anybody.
|
189 |
| -SECRET_KEY = settings["SECRET_KEY"] |
| 158 | +SECRET_KEY = os.environ["SECRET_KEY"] |
190 | 159 |
|
191 | 160 | MIDDLEWARE = (
|
192 | 161 | "django.middleware.security.SecurityMiddleware",
|
|
203 | 172 |
|
204 | 173 | # Email settings
|
205 | 174 |
|
206 |
| -DEFAULT_FROM_EMAIL = settings.get("DEFAULT_FROM_EMAIL") |
207 |
| -ADMIN_EMAIL = settings.get("ADMIN_EMAIL") |
208 |
| -EMAIL_HOST = settings.get("EMAIL_HOST") |
209 |
| -EMAIL_PORT = settings.get("EMAIL_PORT") |
210 |
| -SERVER_EMAIL = settings.get("SERVER_EMAIL") |
211 |
| -EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend" |
212 |
| -EMAIL_HOST_USER = settings.get("EMAIL_USER") |
213 |
| -EMAIL_HOST_PASSWORD = settings.get("EMAIL_PASSWORD") |
| 175 | +DEFAULT_FROM_EMAIL = os.environ.get("DEFAULT_FROM_EMAIL") |
| 176 | +ADMIN_EMAIL = os.environ.get("ADMIN_EMAIL") |
| 177 | +EMAIL_HOST = os.environ.get("EMAIL_HOST") |
| 178 | +EMAIL_PORT = os.environ.get("EMAIL_PORT") |
| 179 | +SERVER_EMAIL = os.environ.get("SERVER_EMAIL") |
| 180 | +EMAIL_BACKEND = "os.environ.core.mail.backends.smtp.EmailBackend" |
| 181 | +EMAIL_HOST_USER = os.environ.get("EMAIL_USER") |
| 182 | +EMAIL_HOST_PASSWORD = os.environ.get("EMAIL_PASSWORD") |
214 | 183 |
|
215 | 184 | ROOT_URLCONF = "os2borgerpc_admin.urls"
|
216 | 185 |
|
|
300 | 269 | },
|
301 | 270 | "root": {
|
302 | 271 | "handlers": ["console", "mail_admins"],
|
303 |
| - "level": settings.get("LOG_LEVEL", fallback="ERROR"), |
| 272 | + "level": os.getenv("LOG_LEVEL", "ERROR"), |
304 | 273 | },
|
305 | 274 | }
|
306 | 275 |
|
307 |
| -INITIALIZE_DATABASE = settings.getboolean("INITIALIZE_DATABASE", False) |
| 276 | +INITIALIZE_DATABASE = os.getenv("INITIALIZE_DATABASE", 'false').lower() == 'true' |
308 | 277 |
|
309 | 278 | CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5"
|
310 | 279 |
|
|
313 | 282 | DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
|
314 | 283 |
|
315 | 284 | # Handler for citizen login.
|
316 |
| -CITIZEN_LOGIN_API_VALIDATOR = settings.get( |
| 285 | +CITIZEN_LOGIN_API_VALIDATOR = os.environ.get( |
317 | 286 | "CITIZEN_LOGIN_API_VALIDATOR", "system.utils.cicero_validate"
|
318 | 287 | )
|
319 | 288 |
|
320 | 289 | # Cicero specific stuff.
|
321 |
| -CICERO_URL = settings.get("CICERO_URL") |
| 290 | +CICERO_URL = os.environ.get("CICERO_URL") |
322 | 291 |
|
323 | 292 | # All Python Markdown's officially supported extensions can be added here without
|
324 | 293 | # any extra setup.
|
|
0 commit comments