strategy.py 730 B

12345678910111213141516171819202122
  1. from django.core.exceptions import PermissionDenied
  2. from social_django.strategy import DjangoStrategy
  3. class MisagoStrategy(DjangoStrategy):
  4. def setting(self, name, default=None, backend=None):
  5. if backend:
  6. backend_settings = self.request.socialauth[backend.name]["settings"]
  7. if name in backend_settings:
  8. return backend_settings[name]
  9. return super().setting(name, default, backend)
  10. def authenticate(self, backend, *args, **kwargs):
  11. kwargs["strategy"] = self
  12. kwargs["storage"] = self.storage
  13. kwargs["backend"] = backend
  14. try:
  15. return backend.authenticate(*args, **kwargs)
  16. except PermissionDenied:
  17. pass