Files
luntan/.trae/documents/管理员登录与角色管理改造计划.md

57 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 目标
- 管理员登录入口改为 `/admin`,使用默认账户:用户名 `Admin`,密码 `lzgzsystem`
- 首次进入管理员界面强制修改密码(未修改前禁止访问后台其他页面)
- 管理员可创建与管理两类角色:`sub_admin`(副管理员),`checker`(审核员)
- 角色管理页面路径:`/sub-admin``/checker`
## 数据模型改动
- `users` 表:新增字段 `must_change_password`bool默认 `False`;初始管理员为 `True`
- `role` 字段允许值:`admin``sub_admin``checker``user`
## 初始化与登录流程
- 应用启动时检测是否存在 `role='admin'` 用户;若不存在则自动创建:
- 用户名:`Admin`,密码:`lzgzsystem`(存储为哈希),状态:`approved``must_change_password=True`
- `GET/POST /admin`
- 显示管理员登录表单(用户名/密码)
- 登录成功后检查 `must_change_password`:若为 `True`,重定向 `GET /admin/change-password`
- `GET/POST /admin/change-password`
- 强制管理员修改密码(校验长度与复杂度、确认密码一致)
- 修改成功后将 `must_change_password=False`,跳转至管理员仪表盘
## 权限与访问控制
- 后台守卫逻辑:
- `admin`:访问全部后台页面(含角色创建与分配)
- `sub_admin`:访问审核与活动管理,但不能创建/变更管理员与审核员角色
- `checker`:仅可访问图片与投稿审核相关页面(`/admin/reviews/posts``/admin/reviews/submissions`
-`admin` 蓝图的 `before_request` 更新为:如非登录态或无后台权限角色,重定向到 `/admin` 登录页
- 移除之前的 `/setup/admin` 首次引导逻辑(入口统一 `/admin`
## 页面与路由新增
- 角色管理:
- `GET/POST /sub-admin`:列表所有 `sub_admin`;提供表单创建新副管理员(邮箱/用户名/密码),或将现有用户提升为 `sub_admin`;支持撤销角色
- `GET/POST /checker`:列表所有 `checker`;同上创建审核员或将现有用户赋予 `checker` 角色;支持撤销角色
- 导航:
- 登录后后台导航新增入口到 `/sub-admin``/checker`
## 审核权限调整
- `checker` 可访问:
- `GET /admin/reviews/posts``POST /admin/reviews/posts/<id>/approve|reject`
- `GET /admin/reviews/submissions``POST /admin/reviews/submissions/<id>/approve|reject`
- `checker` 不允许:用户注册审核与活动创建/发布关闭
## 安全与校验
- 登录密码与修改密码使用 `werkzeug.security` 哈希
- CSRF 保护表单;错误信息与成功提示采用圆角卡片样式
- 防止硬编码密码泄露:仅首启自动创建一次,之后必须修改密码
## 实施步骤
1. 修改 `User` 模型,新增 `must_change_password` 字段
2. 在应用工厂中:启动时自动创建默认管理员(若不存在)
3.`admin` 蓝图中新增 `/admin` 登录与 `/admin/change-password` 强制修改密码流程,更新守卫权限逻辑
4. 新增 `sub-admin``checker` 管理页面与路由(创建、提升、撤销)
5. 调整审核路由访问权限,确保 `checker` 只能审核图片/投稿
6. 更新模板导航,增加入口,保持圆润主题风格
7. 验证:首次启动 → `/admin` 登录默认账户 → 强制改密 → 进入后台 → 创建副管理员/审核员 → 使用审核员账户访问审核页
---
确认后我将开始实施上述改造并进行验证。