client.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from django.contrib.auth import get_user_model
  2. from django.contrib.auth.hashers import make_password
  3. from misago.conf import settings
  4. from misago.conf.shortcuts import get_dynamic_settings
  5. from misago.users.authbackends import MisagoBackend
  6. from misago.users.setupnewuser import setup_new_user
  7. from simple_sso.sso_client.client import Client
  8. User = get_user_model()
  9. class ClientMisago(Client):
  10. def __init__(self, *args, **kwargs):
  11. super().__init__(*args, **kwargs)
  12. self.backend = "%s.%s" % (MisagoBackend.__module__, MisagoBackend.__name__)
  13. def build_user(self, user_data):
  14. try:
  15. user = User.objects.get(username=user_data["username"])
  16. except User.DoesNotExist:
  17. user = User.objects.create_user(
  18. user_data["username"],
  19. user_data["email"],
  20. make_password(make_password("ItDoesMatter")),
  21. )
  22. user.update_acl_key()
  23. user_settings = get_dynamic_settings()
  24. setup_new_user(user_settings, user)
  25. return user
  26. client = ClientMisago(
  27. settings.SSO_SERVER, settings.SSO_PUBLIC_KEY, settings.SSO_PRIVATE_KEY
  28. )