Allow changing username and password in settings; admin can delete duplicate accounts.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-10-17 19:05:41 +08:00
parent 972d5a1e8c
commit d25a4c6862
6 changed files with 137 additions and 20 deletions
+14 -9
View File
@@ -4,29 +4,34 @@
<h2 style="margin:0 0 14px">系统设置</h2>
<div class="grid cols-2">
<div class="card">
<h3>修改登录密码</h3>
<p class="muted">修改当前登录用户密码,立即生效。管理员请在「用户」页创建普通用户。</p>
<form method="post" action="{{ url_for('settings_password') }}" style="margin-top:12px">
<h3>修改登录账号</h3>
<p class="muted">可改用户名和/或密码;须验证当前密码。立即生效。</p>
<form method="post" action="{{ url_for('settings_profile') }}" style="margin-top:12px">
<input type="hidden" name="_prev_username" value="{{ current_user.username }}">
<div class="form-row">
<label>当前密码</label>
<label>用户名</label>
<input name="username" value="{{ current_user.username }}" required minlength="2" autocomplete="username">
</div>
<div class="form-row">
<label>当前密码(必填)</label>
<input name="old_password" type="password" autocomplete="current-password" required>
</div>
<div class="form-row">
<label>新密码(至少 6 位)</label>
<input name="new_password" type="password" autocomplete="new-password" required minlength="6">
<label>新密码(不改请留空,至少 6 位)</label>
<input name="new_password" type="password" autocomplete="new-password" minlength="6">
</div>
<div class="form-row">
<label>确认新密码</label>
<input name="new_password2" type="password" autocomplete="new-password" required minlength="6">
<input name="new_password2" type="password" autocomplete="new-password" minlength="6">
</div>
<button class="btn" type="submit">保存密码</button>
<button class="btn" type="submit">保存</button>
</form>
</div>
<div class="card">
<h3>服务信息</h3>
<p class="muted">对外地址:{{ public_base }}</p>
<p class="muted">端口:5800</p>
<p class="muted">当前登录用户:{{ session.get('user') }}</p>
<p class="muted">当前登录用户:{{ current_user.username }}({{ current_user.role }})</p>
<p class="muted" style="margin-top:12px">通用 exe 放置目录:<code>releases/黄金市价辅助.exe</code></p>
</div>
</div>