add endpoint and UI for users to update their own username

This commit is contained in:
CPTN Cosmo 2026-04-18 17:26:12 +02:00
parent 21d7acd7e5
commit e153a76b77
4 changed files with 77 additions and 5 deletions

17
main.py
View file

@ -226,6 +226,23 @@ async def change_own_password(request: Request):
conn.close()
return {"status": "ok"}
@app.put("/api/users/me/username", dependencies=[Depends(is_authenticated)])
async def change_own_username(request: Request):
data = await request.json()
new_username = data.get("username")
if not new_username:
raise HTTPException(status_code=400, detail="New username required")
user_id = request.session.get("user_id")
try:
conn = sqlite3.connect(DB_PATH)
c = conn.cursor()
c.execute('UPDATE users SET username = ? WHERE id = ?', (new_username, user_id))
conn.commit()
conn.close()
except sqlite3.IntegrityError:
raise HTTPException(status_code=400, detail="Username already exists")
return {"status": "ok"}
class InstanceCreate(BaseModel):
name: str
ip: str