0006-utils-allow-specifying-auth-level-when-getting-backe.patch
| src/authentic2/utils.py | ||
|---|---|---|
|
return cls()
|
||
|
def get_backends(setting_name='IDP_BACKENDS'):
|
||
|
'''Return the list of enabled cleaned backends.'''
|
||
|
def get_backends(setting_name='IDP_BACKENDS', required_auth_level=1):
|
||
|
'''Return the list of enabled cleaned backends.
|
||
|
required_auth_level param allows to filter backends on the authentication
|
||
|
levels they provide. When set to 0, filtering is disabled.
|
||
|
'''
|
||
|
backends = []
|
||
|
for backend_path in getattr(app_settings, setting_name):
|
||
|
kwargs = {}
|
||
| ... | ... | |
|
# If no enabled method is defined on the backend, backend enabled by default.
|
||
|
if hasattr(backend, 'enabled') and not backend.enabled():
|
||
|
continue
|
||
|
if required_auth_level and hasattr(backend, 'auth_level'):
|
||
|
if backend.auth_level != required_auth_level:
|
||
|
continue
|
||
|
elif required_auth_level > 1:
|
||
|
continue
|
||
|
kwargs_settings = getattr(app_settings, setting_name + '_KWARGS', {})
|
||
|
if backend_path in kwargs_settings:
|
||
|
kwargs.update(kwargs_settings[backend_path])
|
||