add endpoint and UI for users to update their own username
This commit is contained in:
parent
21d7acd7e5
commit
e153a76b77
4 changed files with 77 additions and 5 deletions
17
main.py
17
main.py
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue