]> git.parisson.com Git - django-social-auth.git/commitdiff
Only load defined (and enabled) backends. Closes #277.
authorMatías Aguirre <matiasaguirre@gmail.com>
Sat, 3 Mar 2012 15:37:37 +0000 (13:37 -0200)
committerMatías Aguirre <matiasaguirre@gmail.com>
Sat, 3 Mar 2012 15:37:37 +0000 (13:37 -0200)
social_auth/backends/__init__.py

index e9c0d7ce244b9231066cb7db64a93143472e49b5..ceaffcfdae544f499ac7a9d07e3fa6e55d002623 100644 (file)
@@ -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