diff --git a/taccsite_cms/custom_app_settings.example.py b/taccsite_cms/custom_app_settings.example.py index 4bc48c268..620484bf7 100644 --- a/taccsite_cms/custom_app_settings.example.py +++ b/taccsite_cms/custom_app_settings.example.py @@ -11,5 +11,7 @@ 'djangocms_blog', ] -CUSTOM_MIDDLEWARE = [] +CUSTOM_MIDDLEWARE = [ + 'taccsite_cms.middleware.settings.DynamicSiteIdMiddleware' +] STATICFILES_DIRS = () diff --git a/taccsite_cms/middleware/settings.py b/taccsite_cms/middleware/settings.py new file mode 100644 index 000000000..be2cc28b2 --- /dev/null +++ b/taccsite_cms/middleware/settings.py @@ -0,0 +1,18 @@ +"""Change site based on domain name (fallback to default site)""" +from django.conf import settings +from django.contrib.sites.models import Site + +class DynamicSiteIdMiddleware: + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): + try: + host = request.get_host() + site = Site.objects.get(domain=host) + settings.SITE_ID = site.id + except Site.DoesNotExist: + settings.SITE_ID = getattr(settings, 'DEFAULT_SITE_ID', 1) + + response = self.get_response(request) + return response diff --git a/taccsite_cms/settings_local.example.py b/taccsite_cms/settings_local.example.py index e71f16743..68e58f35a 100644 --- a/taccsite_cms/settings_local.example.py +++ b/taccsite_cms/settings_local.example.py @@ -27,3 +27,10 @@ # IMPORTANT: Do not disable by default, because [Core-Portal clones this file](https://github.com/TACC/Core-Portal/pull/1034) # PORTAL_IS_TACC_CORE_PORTAL = False # PORTAL_HAS_LOGIN = False + +# To let user assign News article to specific Site +# BLOG_MULTISITE = True + +# To allow login in unique situations +# FAQ: If `BLOG_MULTISITE = True`, set `SESSION_COOKIE_SECURE=False` to be able to log in to CMS Admin at different domain (e.g. 0.0.0.0) +SESSION_COOKIE_SECURE = False