feat: handle pre-existing users in register_magic_link route

This commit is contained in:
Johan Lundberg 2026-02-18 10:29:44 +01:00
parent 1c21d6d199
commit 0c3157ea3a
No known key found for this signature in database
GPG key ID: A6C152738D03C7D1

View file

@ -78,9 +78,13 @@ async def register_magic_link(request: Request, token: str) -> Response:
if link is None:
return HTMLResponse("<p>Invalid or expired registration link.</p>", status_code=400)
userid = await generate_unique_userid(user_repo)
user = User(userid=userid, username=link.username, groups=["users"])
await user_repo.create(user)
existing_user = await user_repo.get_by_username(link.username)
if existing_user is not None:
user = existing_user
else:
userid = await generate_unique_userid(user_repo)
user = User(userid=userid, username=link.username, groups=["users"])
await user_repo.create(user)
await magic_link_service.mark_used(token)