fix(ui): username change no longer requires password confirmation
This commit is contained in:
@@ -85,14 +85,9 @@ def settings_page(
|
|||||||
def change_username(
|
def change_username(
|
||||||
request: Request,
|
request: Request,
|
||||||
new_username: str = Form(...),
|
new_username: str = Form(...),
|
||||||
password: str = Form(...),
|
|
||||||
user: User = Depends(get_current_user_web),
|
user: User = Depends(get_current_user_web),
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
):
|
):
|
||||||
if not verify_password(password, user.password_hash):
|
|
||||||
return templates.TemplateResponse(
|
|
||||||
"settings.html", {"request": request, "user": user, "error": "密码错误"}, status_code=400
|
|
||||||
)
|
|
||||||
if db.query(User).filter(User.username == new_username, User.id != user.id).first():
|
if db.query(User).filter(User.username == new_username, User.id != user.id).first():
|
||||||
return templates.TemplateResponse(
|
return templates.TemplateResponse(
|
||||||
"settings.html", {"request": request, "user": user, "error": "用户名已存在"}, status_code=400
|
"settings.html", {"request": request, "user": user, "error": "用户名已存在"}, status_code=400
|
||||||
|
|||||||
@@ -19,8 +19,6 @@
|
|||||||
<input type="text" value="{{ user.username }}" disabled>
|
<input type="text" value="{{ user.username }}" disabled>
|
||||||
<label>新用户名</label>
|
<label>新用户名</label>
|
||||||
<input type="text" name="new_username" required maxlength="64" placeholder="输入新用户名">
|
<input type="text" name="new_username" required maxlength="64" placeholder="输入新用户名">
|
||||||
<label>确认密码</label>
|
|
||||||
<input type="password" name="password" required placeholder="输入当前密码确认身份">
|
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<button type="submit" class="btn btn-primary">修改用户名</button>
|
<button type="submit" class="btn btn-primary">修改用户名</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
from fastapi.testclient import TestClient
|
|
||||||
from app.main import app
|
|
||||||
|
|
||||||
c = TestClient(app)
|
|
||||||
|
|
||||||
# login
|
|
||||||
r = c.post("/login", data={"username": "admin", "password": "admin123"}, follow_redirects=False)
|
|
||||||
print("login:", r.status_code)
|
|
||||||
session = r.cookies.get("pc_session")
|
|
||||||
if session:
|
|
||||||
c.cookies.set("pc_session", session)
|
|
||||||
r = c.get("/dashboard")
|
|
||||||
print("dashboard:", r.status_code)
|
|
||||||
assert r.status_code == 200
|
|
||||||
r = c.get("/profiles")
|
|
||||||
print("profiles:", r.status_code)
|
|
||||||
assert r.status_code == 200
|
|
||||||
print("All checks passed")
|
|
||||||
else:
|
|
||||||
print("login failed, no session")
|
|
||||||
r2 = c.post("/login", data={"username": "admin", "password": "admin123"}, follow_redirects=True)
|
|
||||||
print("follow:", r2.status_code, "pc_session:", r2.cookies.get("pc_session"))
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user