Login user

This commit is contained in:
Christian Cueni 2022-04-14 11:44:52 +02:00
parent 61b4e91d67
commit 616113aaf9
2 changed files with 7 additions and 5 deletions

View File

@ -1,14 +1,15 @@
from django.contrib.auth.models import AbstractUser
from django.db import models
class UserManager(models.Manager):
def create_or_update_by_email(self, email: str, first_name: str, last_name: str, username: str) -> bool:
def create_or_update_by_email(self, email: str, first_name: str, last_name: str, username: str) -> tuple[
AbstractUser, bool]:
# create or sync user with OpenID Data
_user, created = self.model.objects.get_or_create(email=email, defaults={
user, created = self.model.objects.get_or_create(email=email, defaults={
"first_name": first_name,
"last_name": last_name,
"username": username
})
return created
return user, created

View File

@ -31,9 +31,10 @@ def authorize(request):
return redirect(f'/{OAUTH_REDIRECT}?state=someerror') # to be defined
user_data = _user_data_from_token_data(deocded_token)
created = get_user_model().objects.create_or_update_by_email(user_data["email"], user_data["first_name"],
user, created = get_user_model().objects.create_or_update_by_email(user_data["email"], user_data["first_name"],
user_data["last_name"], user_data["username"])
dj_login(request, user)
return redirect(f'/{OAUTH_REDIRECT}?state=success') # to be defined