0887c2b8df
Currently, 500 page uses WEBROOT to set home link where WEBROOT is being taken from horizon.conf module. However, this module sets only HORIZON_CONFIG. As a result, 500 page is rendered with empty link, pointing home button to current page. This patch loads WEBROOT to horizon.conf, so it can be used in template for 500 error page. Change-Id: Icdd23703527a09a61d1326992b25a1004713444e Closes-Bug: 1507563
56 lines
2.2 KiB
Python
56 lines
2.2 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import copy
|
|
|
|
from django.utils.functional import empty # noqa
|
|
from django.utils.functional import LazyObject # noqa
|
|
from django.utils.functional import SimpleLazyObject # noqa
|
|
|
|
|
|
class LazySettings(LazyObject):
|
|
def _setup(self, name=None):
|
|
from django.conf import settings
|
|
from horizon.conf.default import HORIZON_CONFIG as DEFAULT_CONFIG # noqa
|
|
HORIZON_CONFIG = copy.copy(DEFAULT_CONFIG)
|
|
HORIZON_CONFIG.update(settings.HORIZON_CONFIG)
|
|
|
|
# Ensure we always have our exception configuration...
|
|
for exc_category in ['unauthorized', 'not_found', 'recoverable']:
|
|
if exc_category not in HORIZON_CONFIG['exceptions']:
|
|
default_exc_config = DEFAULT_CONFIG['exceptions'][exc_category]
|
|
HORIZON_CONFIG['exceptions'][exc_category] = default_exc_config
|
|
|
|
# Ensure our password validator always exists...
|
|
if 'regex' not in HORIZON_CONFIG['password_validator']:
|
|
default_pw_regex = DEFAULT_CONFIG['password_validator']['regex']
|
|
HORIZON_CONFIG['password_validator']['regex'] = default_pw_regex
|
|
if 'help_text' not in HORIZON_CONFIG['password_validator']:
|
|
default_pw_help = DEFAULT_CONFIG['password_validator']['help_text']
|
|
HORIZON_CONFIG['password_validator']['help_text'] = default_pw_help
|
|
|
|
self._wrapped = HORIZON_CONFIG
|
|
|
|
def __getitem__(self, name, fallback=None):
|
|
if self._wrapped is empty:
|
|
self._setup(name)
|
|
return self._wrapped.get(name, fallback)
|
|
|
|
|
|
def get_webroot():
|
|
from django.conf import settings
|
|
return settings.WEBROOT
|
|
|
|
|
|
HORIZON_CONFIG = LazySettings()
|
|
WEBROOT = SimpleLazyObject(get_webroot)
|