From 60c64af159397afdda185eb15df2eb949f50ebbe Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mat=C3=ADas=20Aguirre?= Date: Sat, 3 Mar 2012 13:37:37 -0200 Subject: [PATCH] Only load defined (and enabled) backends. Closes #277. --- social_auth/backends/__init__.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/social_auth/backends/__init__.py b/social_auth/backends/__init__.py index e9c0d7c..ceaffcf 100644 --- a/social_auth/backends/__init__.py +++ b/social_auth/backends/__init__.py @@ -718,11 +718,15 @@ def get_backends(force_load=False): """ if not BACKENDSCACHE or force_load: for auth_backend in setting('AUTHENTICATION_BACKENDS'): - module = import_module(auth_backend.rsplit(".", 1)[0]) - backends = getattr(module, "BACKENDS", {}) - for name, backend in backends.items(): - if backend.enabled(): - BACKENDSCACHE[name] = backend + mod, cls_name = auth_backend.rsplit('.', 1) + module = import_module(mod) + backend = getattr(module, cls_name) + + if issubclass(backend, SocialAuthBackend): + name = backend.name + backends = getattr(module, 'BACKENDS', {}) + if name in backends and backends[name].enabled(): + BACKENDSCACHE[name] = backends[name] return BACKENDSCACHE -- 2.39.5