Set default settings using class attr.

This commit is contained in:
juanifioren 2015-03-04 17:17:37 -03:00
parent 3ad316cdca
commit a97ef2b5cf

View file

@ -1,26 +1,61 @@
from django.conf import settings from django.conf import settings
from oidc_provider.lib.claims import AbstractScopeClaims
class DefaultSettings(object):
def default_sub_generator(user): @property
def LOGIN_URL(self):
"""
REQUIRED.
"""
return None
return user.id @property
def SITE_URL(self):
"""
REQUIRED.
"""
return None
@property
def OIDC_CODE_EXPIRE(self):
"""
OPTIONAL.
"""
return 60*10
# Here goes all the package default settings. @property
default_settings = { def OIDC_EXTRA_SCOPE_CLAIMS(self):
# Required. """
'LOGIN_URL': None, OPTIONAL.
'SITE_URL': None, """
from oidc_provider.lib.claims import AbstractScopeClaims
# Optional. return AbstractScopeClaims
'OIDC_CODE_EXPIRE': 60*10,
'OIDC_EXTRA_SCOPE_CLAIMS': AbstractScopeClaims, @property
'OIDC_IDTOKEN_EXPIRE': 60*10, def OIDC_IDTOKEN_EXPIRE(self):
'OIDC_IDTOKEN_SUB_GENERATOR': default_sub_generator, """
'OIDC_TOKEN_EXPIRE': 60*60, OPTIONAL.
} """
return 60*10
@property
def OIDC_IDTOKEN_SUB_GENERATOR(self):
"""
OPTIONAL.
"""
def default_sub_generator(user):
return user.id
return default_sub_generator
@property
def OIDC_TOKEN_EXPIRE(self):
"""
OPTIONAL.
"""
return 60*60
def get(name): def get(name):
@ -28,7 +63,7 @@ def get(name):
Helper function to use inside the package. Helper function to use inside the package.
''' '''
try: try:
value = default_settings[name] value = getattr(DefaultSettings(), name)
value = getattr(settings, name) value = getattr(settings, name)
except AttributeError: except AttributeError:
if value == None: if value == None: