app_settings: move default value from other modules

This commit is contained in:
Benjamin Dauvergne 2014-03-21 00:49:45 +01:00
parent 8f2a43fee3
commit 7eac84c8bd
3 changed files with 23 additions and 14 deletions

View File

@ -1,11 +1,25 @@
class AppSettings(object):
__DEFAULTS = {
'METADATA_OPTIONS': {},
'DISCO_RETURN_ID_PARAM': 'entityID',
'DISCO_SERVICE_NAME': None,
}
def __init__(self, prefix):
self.prefix = prefix
def SHOW_DISCO_IN_MD(self):
from django.conf import settings
return getattr(settings, 'SHOW_DISCO_IN_MD', False)
def _setting(self, name, dflt):
from django.conf import settings
return getattr(settings, name, dflt)
return getattr(settings, self.prefix+name, dflt)
def __getattr__(self, name):
if name in self.__DEFAULTS:
return self._setting(name, self.__DEFAULTS[name])
raise AttributeError(name)
# Ugly? Guido recommends this himself ...

View File

@ -40,12 +40,9 @@ from authentic2_auth_saml2.utils import error_page
from authentic2_auth_saml2 import signals
from authentic2.utils import cache_and_validate, flush_django_session
from . import utils
from . import utils, app_settings
from .decorators import anonymous_only
__logout_redirection_timeout = getattr(settings,
'IDP_LOGOUT_TIMEOUT', 600)
logger = logging.getLogger(__name__)
MANAGE_DUMP_KEY = 'manage-dump'
@ -73,7 +70,7 @@ metadata_map = (
)
metadata_options = {'key': settings.SAML_SIGNATURE_PUBLIC_KEY}
try:
if settings.SHOW_DISCO_IN_MD:
if app_settings.SHOW_DISCO_IN_MD:
metadata_options['disco'] = ('/discoveryReturn', )
except:
pass
@ -658,8 +655,7 @@ def get_provider_id_and_options(provider_id):
if not provider_id:
provider_id = reverse('a2-auth-saml2-metadata')
options = metadata_options
if getattr(settings, 'AUTHSAML2_METADATA_OPTIONS', None):
options.update(settings.AUTHSAML2_METADATA_OPTIONS)
options.update(app_settings.AUTHSAML2_METADATA_OPTIONS)
return provider_id, options
def get_metadata(request, provider_id=None):

View File

@ -3,18 +3,17 @@ import urlparse
import urllib
from django.core.urlresolvers import reverse
from django.conf import settings
from django.http import Http404, HttpResponseRedirect
from django.utils.translation import ugettext as _
from .views import metadata
from .utils import register_next_target, error_page, get_registered_url
from . import app_settings
logger = logging.getLogger(__name__)
def get_return_id_param():
return getattr(settings, 'DISCO_RETURN_ID_PARAM', 'entityID')
return app_settings.DISCO_RETURN_ID_PARAM
##############################################################
#
@ -40,11 +39,11 @@ def build_discovery_url(request, target):
def redirect_to_disco(request):
'''Send a discovery request to the default disco service'''
if not hasattr(settings, 'DISCO_SERVICE_NAME'):
if not app_settings.DISCO_SERVICE_NAME:
raise Http404
register_next_target(request)
try:
target = settings.DISCO_SERVICE_NAME
target = app_settings.DISCO_SERVICE_NAME
except:
logger.error('missing parameter in settings')
return None
@ -57,7 +56,7 @@ def redirect_to_disco(request):
def disco_response(request):
'''Handle the discovery response'''
if not hasattr(settings, 'DISCO_SERVICE_NAME'):
if not app_settings.DISCO_SERVICE_NAME:
raise Http404
if not request.method == "GET":
message = _('HTTP request not supported')