vbv/server/vbv_lernwelt/importer/services.py

31 lines
742 B
Python

from vbv_lernwelt.core.models import User
def create_or_update_user(
email: str, first_name: str = "", last_name: str = "", sso_id: str = None
):
user = None
if sso_id:
user_qs = User.objects.filter(sso_id=sso_id)
if user_qs.exists():
user = user_qs.first()
if not user:
user_qs = User.objects.filter(email=email)
if user_qs.exists():
user = user_qs.first()
if not user:
# create user
user = User(sso_id=sso_id, email=email, username=email)
user.email = email
user.sso_id = sso_id
user.username = email
user.first_name = first_name
user.last_name = last_name
user.set_unusable_password()
user.save()
return user