13
13
import logging
14
14
import os
15
15
from socket import gethostbyname , gethostname
16
+ from urllib .parse import urlparse
16
17
17
18
import dj_database_url
18
19
import environ
42
43
default = "https://api-prod.raw-data.hotosm.org/v1" ,
43
44
)
44
45
45
- CORS_ALLOW_HEADERS = list (default_headers ) + [
46
- "access-token" ,
47
- ]
48
46
if env ("GDAL_LIBRARY_PATH" , default = False ):
49
47
GDAL_LIBRARY_PATH = env ("GDAL_LIBRARY_PATH" )
50
48
120
118
"django.contrib.messages.middleware.MessageMiddleware" ,
121
119
"django.middleware.clickjacking.XFrameOptionsMiddleware" ,
122
120
]
123
- ALLOWED_ORIGINS = env ("CORS_ALLOWED_ORIGINS" , default = "http://127.0.0.1:8000" ).split (
124
- ","
125
- )
126
-
127
- CORS_ORIGIN_WHITELIST = ALLOWED_ORIGINS
128
-
129
- ALLOWED_HOSTS = [
130
- "localhost" ,
131
- "127.0.0.1" ,
132
- HOSTNAME ,
133
- gethostbyname (gethostname ()),
134
- ] + ALLOWED_ORIGINS
135
-
136
121
137
- CORS_ORIGIN_ALLOW_ALL = env ("CORS_ORIGIN_ALLOW_ALL" , default = False )
138
122
DEFAULT_PAGINATION_SIZE = env ("DEFAULT_PAGINATION_SIZE" , default = 50 )
139
123
140
124
REST_FRAMEWORK = {
283
267
EMAIL_USE_SSL = os .getenv ("EMAIL_USE_SSL" , "False" ) == "True"
284
268
EMAIL_HOST_USER = os .getenv ("EMAIL_HOST_USER" , "example-email@example.com" )
285
269
EMAIL_HOST_PASSWORD = os .getenv ("EMAIL_HOST_PASSWORD" , "example-email-password" )
286
- DEFAULT_FROM_EMAIL = os .getenv ("DEFAULT_FROM_EMAIL" , "no-reply@example.com" )
270
+ DEFAULT_FROM_EMAIL = os .getenv ("DEFAULT_FROM_EMAIL" , "no-reply@example.com" )
271
+
272
+
273
+ # CORS settings
274
+
275
+
276
+ def extract_domain (url ):
277
+ return urlparse (url ).hostname
278
+
279
+
280
+ if DEBUG :
281
+ CORS_ORIGIN_ALLOW_ALL = True
282
+ else :
283
+ CORS_ORIGIN_ALLOW_ALL = env ("CORS_ORIGIN_ALLOW_ALL" , default = False )
284
+
285
+ CORS_ALLOWED_ORIGINS = env (
286
+ "CORS_ALLOWED_ORIGINS" , default = "http://127.0.0.1:8000"
287
+ ).split ("," )
288
+
289
+ CORS_ALLOW_HEADERS = list (default_headers ) + [
290
+ "access-token" ,
291
+ "authorization" ,
292
+ "content-type" ,
293
+ "x-csrftoken" ,
294
+ ]
295
+ ALLOWED_HOSTS = [
296
+ "localhost" ,
297
+ "127.0.0.1" ,
298
+ env ("HOSTNAME" , default = "127.0.0.1" ),
299
+ gethostname (),
300
+ gethostbyname (gethostname ()),
301
+ ] + [extract_domain (url ) for url in CORS_ALLOWED_ORIGINS if url ]
0 commit comments