Skip to content

Commit

Permalink
Merge pull request #207 from hydroserver2/207-organization-creation-i…
Browse files Browse the repository at this point in the history
…ssue

Fixed organization creation.
  • Loading branch information
kjlippold authored Oct 3, 2024
2 parents 395fe4a + e1fad26 commit 7dd60be
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions accounts/views/person.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from ninja_jwt.tokens import RefreshToken
from django.http import HttpRequest
from django.contrib.auth import get_user_model
from django.db import IntegrityError
from django.db import IntegrityError, transaction
from hydroserver.auth import JWTAuth, BasicAuth
from accounts.models import Organization
from accounts.models.person import PasswordReset, account_verification_token
Expand Down Expand Up @@ -43,13 +43,19 @@ def get_user(request: HttpRequest):
},
by_alias=True
)
@transaction.atomic
def create_user(request: HttpRequest, data: PersonPostBody):

user = user_model.objects.filter(username=data.user_email, is_verified=True).first()

if user:
return 409, 'Email already linked to an existing account.'

if getattr(data, 'organization', None) is not None:
organization = Organization.objects.create(**data.organization.dict())
else:
organization = None

user = user_model.objects.create_user(
email=data.user_email,
password=data.password,
Expand All @@ -59,12 +65,10 @@ def create_user(request: HttpRequest, data: PersonPostBody):
type=data.type,
phone=data.phone,
address=data.address,
link=data.link
link=data.link,
organization=organization,
)

if getattr(data, 'organization', None) is not None:
Organization.objects.create(person=user, **data.organization.dict())

user.send_verification_email()
jwt = RefreshToken.for_user(user)

Expand All @@ -86,6 +90,7 @@ def create_user(request: HttpRequest, data: PersonPostBody):
auth=[JWTAuth(), BasicAuth()],
by_alias=True
)
@transaction.atomic
def update_user(request: HttpRequest, data: PersonPatchBody):

user = getattr(request, 'authenticated_user', None)
Expand Down

0 comments on commit 7dd60be

Please sign in to comment.