31 lines
742 B
Python
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
|