feat: log
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from flask import render_template, redirect, url_for, flash, request
|
||||
from flask import render_template, redirect, url_for, flash, request, current_app
|
||||
from flask_login import login_user, logout_user, login_required, current_user
|
||||
from . import auth
|
||||
from .. import db
|
||||
@@ -7,6 +7,7 @@ from ..forms import LoginForm, RegistrationForm
|
||||
|
||||
@auth.route('/register', methods=['GET', 'POST'])
|
||||
def register():
|
||||
"""用户注册"""
|
||||
if current_user.is_authenticated:
|
||||
return redirect(url_for('main.index'))
|
||||
form = RegistrationForm()
|
||||
@@ -18,36 +19,43 @@ def register():
|
||||
username=form.username.data,
|
||||
pt_site=form.pt_site.data,
|
||||
uid=form.uid.data,
|
||||
status='pending' # 新用户需要管理员审核
|
||||
status='pending'
|
||||
)
|
||||
user.set_password(form.password.data)
|
||||
db.session.add(user)
|
||||
db.session.commit()
|
||||
current_app.logger.info(f'新用户注册: {user.username} ({user.email}) - 站点: {user.pt_site}')
|
||||
flash('注册申请已提交,请等待管理员审核。', 'info')
|
||||
return redirect(url_for('auth.login'))
|
||||
return render_template('auth/register.html', form=form)
|
||||
|
||||
@auth.route('/login', methods=['GET', 'POST'])
|
||||
def login():
|
||||
"""用户登录"""
|
||||
if current_user.is_authenticated:
|
||||
return redirect(url_for('main.index'))
|
||||
form = LoginForm()
|
||||
if form.validate_on_submit():
|
||||
user = User.query.filter_by(email=form.email.data).first()
|
||||
if user is None or not user.check_password(form.password.data):
|
||||
current_app.logger.warning(f'登录失败: {form.email.data} - 无效的邮箱或密码')
|
||||
flash('无效的邮箱或密码。', 'danger')
|
||||
return redirect(url_for('auth.login'))
|
||||
|
||||
|
||||
if user.status != 'active':
|
||||
current_app.logger.warning(f'登录失败: {user.username} - 账户状态: {user.status}')
|
||||
flash(f'您的账户当前状态为 "{user.status}",无法登录。请联系管理员。', 'warning')
|
||||
return redirect(url_for('auth.login'))
|
||||
login_user(user, remember=form.remember_me.data)
|
||||
current_app.logger.info(f'用户登录: {user.username} ({user.email})')
|
||||
return redirect(url_for('main.index'))
|
||||
return render_template('auth/login.html', form=form)
|
||||
|
||||
@auth.route('/logout')
|
||||
@login_required
|
||||
def logout():
|
||||
"""用户登出"""
|
||||
current_app.logger.info(f'用户登出: {current_user.username}')
|
||||
logout_user()
|
||||
flash('您已成功登出。')
|
||||
return redirect(url_for('main.index'))
|
||||
|
||||
Reference in New Issue
Block a user