From bcf2c71fad047cd0bb93fbcf6701cf08e77f90d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=80=E6=A2=A6?= <3501646051@qq.com> Date: Sun, 21 Dec 2025 22:07:23 +0800 Subject: [PATCH] =?UTF-8?q?refactor(frontend):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AE=A4=E8=AF=81=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将前端文件从html目录迁移到views目录,按功能模块组织 重构认证中间件和路由处理,简化页面权限控制 更新静态资源引用路径,统一使用/public前缀 添加学生仪表板页面,优化移动端显示 移除旧版html和js文件,更新样式和脚本 --- backend/server.js | 109 +- frontend/js/auth.js | 269 -- frontend/{ => public}/css/main.css | 0 frontend/public/css/notification.css | 47 + frontend/{ => public}/css/style.css | 2347 +++++++++-------- frontend/{ => public}/js/admin.js | 64 +- frontend/public/js/auth.js | 287 ++ frontend/{ => public}/js/main.js | 45 +- frontend/{ => public}/js/student.js | 58 +- frontend/{ => public}/js/teacher.js | 29 +- .../admin/dashboard.html} | 81 +- .../admin}/student_management.html | 120 +- .../admin}/user_management.html | 127 +- frontend/{html => views/auth}/index.html | 56 +- frontend/{html => views/auth}/login.html | 15 +- frontend/{html => views/auth}/register.html | 38 +- .../student/dashboard.html} | 48 +- .../teacher/dashboard.html} | 68 +- .../{html => views/teacher}/grade_entry.html | 92 +- .../teacher}/grade_management.html | 118 +- 20 files changed, 2009 insertions(+), 2009 deletions(-) delete mode 100644 frontend/js/auth.js rename frontend/{ => public}/css/main.css (100%) create mode 100644 frontend/public/css/notification.css rename frontend/{ => public}/css/style.css (87%) rename frontend/{ => public}/js/admin.js (90%) create mode 100644 frontend/public/js/auth.js rename frontend/{ => public}/js/main.js (84%) rename frontend/{ => public}/js/student.js (91%) rename frontend/{ => public}/js/teacher.js (93%) rename frontend/{html/admin_dashboard.html => views/admin/dashboard.html} (87%) rename frontend/{html => views/admin}/student_management.html (84%) rename frontend/{html => views/admin}/user_management.html (82%) rename frontend/{html => views/auth}/index.html (75%) rename frontend/{html => views/auth}/login.html (84%) rename frontend/{html => views/auth}/register.html (74%) rename frontend/{html/student_dashboard.html => views/student/dashboard.html} (83%) rename frontend/{html/teacher_dashboard.html => views/teacher/dashboard.html} (89%) rename frontend/{html => views/teacher}/grade_entry.html (86%) rename frontend/{html => views/teacher}/grade_management.html (88%) diff --git a/backend/server.js b/backend/server.js index 4527c11..d35ef00 100644 --- a/backend/server.js +++ b/backend/server.js @@ -52,65 +52,72 @@ app.use(session({ } })); -// 静态文件服务 -app.use(express.static(path.join(__dirname, '../frontend'))); +// 静态文件服务 - 只公开 public 目录 +app.use('/public', express.static(path.join(__dirname, '../frontend/public'))); -// 重定向旧路径 /frontend/html/* 到 /html/* -app.get('/frontend/html/*', (req, res) => { - const path = req.params[0]; - res.redirect(`/html/${path}`); +// 页面认证中间件 +const requirePageAuth = (req, res, next) => { + if (!req.session.user) { + return res.redirect('/login'); + } + next(); +}; + +const requirePageRole = (allowedRoles) => { + return (req, res, next) => { + if (!req.session.user) return res.redirect('/login'); + if (!allowedRoles.includes(req.session.user.role)) { + return res.status(403).send('
${profile.enrollment_year || '未设置'}
+${profile.enrollment_year || '未设?}