添加用户修改密码功能

develop
杨博文 5 months ago
parent a1936da733
commit c69d6a66c3

@ -242,6 +242,33 @@ def contact_emails(id):
).order_by(Email.created_at.desc()).all()
return render_template('contact_emails.html', contact=contact, emails=emails)
# 用户设置
@app.route('/settings', methods=['GET', 'POST'])
@login_required
def user_settings():
if request.method == 'POST':
action = request.form.get('action')
if action == 'password':
old_password = request.form.get('old_password')
new_password = request.form.get('new_password')
confirm = request.form.get('confirm_password')
if not current_user.check_password(old_password):
flash('原密码错误', 'error')
elif new_password != confirm:
flash('两次密码输入不一致', 'error')
elif len(new_password) < 6:
flash('新密码至少6位', 'error')
else:
current_user.set_password(new_password)
db.session.commit()
flash('密码修改成功', 'success')
return render_template('settings.html')
# Admin routes
@app.route('/admin')
@login_required

@ -261,6 +261,7 @@
<span>{{ current_user.username }}</span>
<a href="{{ url_for('inbox') }}">收件箱</a>
<a href="{{ url_for('compose') }}">写邮件</a>
<a href="{{ url_for('user_settings') }}">设置</a>
{% if current_user.is_admin %}
<a href="{{ url_for('admin_dashboard') }}">管理后台</a>
{% endif %}

@ -0,0 +1,52 @@
{% extends "base.html" %}
{% block title %}账户设置 - 邮件系统{% endblock %}
{% block content %}
<div class="main-layout">
<div class="sidebar">
<a href="{{ url_for('inbox') }}">📥 收件箱</a>
<a href="{{ url_for('sent') }}">📤 已发送</a>
<a href="{{ url_for('drafts') }}">📝 草稿箱</a>
<a href="{{ url_for('contacts') }}">📇 通讯录</a>
<a href="{{ url_for('compose') }}">✏️ 写邮件</a>
<hr style="margin: 1rem 0;">
<a href="{{ url_for('user_settings') }}" class="active">⚙️ 账户设置</a>
</div>
<div class="main-content">
<div class="card">
<h2 style="margin-bottom: 1.5rem;">账户信息</h2>
<div style="margin-bottom: 1rem;">
<div style="color: #6b7280; font-size: 0.9rem;">用户名</div>
<div style="font-size: 1.1rem;">{{ current_user.username }}</div>
</div>
<div style="margin-bottom: 1rem;">
<div style="color: #6b7280; font-size: 0.9rem;">邮箱地址</div>
<div style="font-size: 1.1rem;">{{ current_user.email }}</div>
</div>
<div>
<div style="color: #6b7280; font-size: 0.9rem;">注册时间</div>
<div style="font-size: 1.1rem;">{{ current_user.created_at.strftime('%Y-%m-%d %H:%M') }}</div>
</div>
</div>
<div class="card">
<h2 style="margin-bottom: 1.5rem;">修改密码</h2>
<form method="POST" style="max-width: 400px;">
<input type="hidden" name="action" value="password">
<div class="form-group">
<label>原密码</label>
<input type="password" name="old_password" required>
</div>
<div class="form-group">
<label>新密码</label>
<input type="password" name="new_password" required minlength="6">
</div>
<div class="form-group">
<label>确认新密码</label>
<input type="password" name="confirm_password" required minlength="6">
</div>
<button type="submit" class="btn btn-primary">修改密码</button>
</form>
</div>
</div>
</div>
{% endblock %}
Loading…
Cancel
Save