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