🔥 移除旧密码重置审核系统 & ✨ 优化存储管理UI
后端改进: - 移除需要管理员审核的密码重置请求功能 - 简化密码重置流程,直接使用邮件重置 - 删除 password_reset_requests 表及相关代码 前端优化: - 重新设计存储管理界面,采用现代化渐变风格 - 改进存储方式切换交互,添加动画效果 - 优化视觉层次和信息展示 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -17,7 +17,7 @@ const { exec, execSync } = require('child_process');
|
||||
const util = require('util');
|
||||
const execAsync = util.promisify(exec);
|
||||
|
||||
const { db, UserDB, ShareDB, SettingsDB, PasswordResetDB, VerificationDB, PasswordResetTokenDB } = require('./database');
|
||||
const { db, UserDB, ShareDB, SettingsDB, VerificationDB, PasswordResetTokenDB } = require('./database');
|
||||
const { generateToken, authMiddleware, adminMiddleware } = require('./auth');
|
||||
|
||||
const app = express();
|
||||
@@ -3200,99 +3200,6 @@ app.post('/api/admin/users/:id/storage-permission',
|
||||
}
|
||||
);
|
||||
|
||||
// 重置用户密码
|
||||
// ===== 密码重置请求系统 =====
|
||||
|
||||
// 用户提交密码重置请求(公开API)
|
||||
app.post('/api/password-reset/request',
|
||||
[
|
||||
body('username').notEmpty().withMessage('用户名不能为空'),
|
||||
body('new_password').isLength({ min: 6 }).withMessage('新密码至少6个字符')
|
||||
],
|
||||
(req, res) => {
|
||||
const errors = validationResult(req);
|
||||
if (!errors.isEmpty()) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
errors: errors.array()
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
const { username, new_password } = req.body;
|
||||
|
||||
const user = UserDB.findByUsername(username);
|
||||
if (!user) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
message: '用户不存在'
|
||||
});
|
||||
}
|
||||
|
||||
// 检查是否已有待审核的请求
|
||||
if (PasswordResetDB.hasPendingRequest(user.id)) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: '您已经提交过密码重置请求,请等待管理员审核'
|
||||
});
|
||||
}
|
||||
|
||||
// 创建密码重置请求
|
||||
PasswordResetDB.create(user.id, new_password);
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
message: '密码重置请求已提交,请等待管理员审核'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('提交密码重置请求失败:', error);
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: '提交失败: ' + error.message
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// 获取待审核的密码重置请求(管理员)
|
||||
app.get('/api/admin/password-reset/pending', authMiddleware, adminMiddleware, (req, res) => {
|
||||
try {
|
||||
const requests = PasswordResetDB.getPending();
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
requests
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('获取密码重置请求失败:', error);
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: '获取请求失败: ' + error.message
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// 审核密码重置请求(管理员)
|
||||
app.post('/api/admin/password-reset/:id/review', authMiddleware, adminMiddleware, (req, res) => {
|
||||
try {
|
||||
const { id } = req.params;
|
||||
const { approved } = req.body;
|
||||
|
||||
PasswordResetDB.review(id, req.user.id, approved);
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
message: approved ? '密码重置已批准' : '密码重置已拒绝'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('审核密码重置请求失败:', error);
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: error.message || '审核失败'
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// ===== 管理员文件审查功能 =====
|
||||
|
||||
// 查看用户文件列表(管理员,只读)
|
||||
|
||||
Reference in New Issue
Block a user