Repository navigation
Readest Lite v8.19.0 — 文件去重 + 回收站 + 角色层级
Readest Lite v8.19.0 — 文件去重 + 回收站 + 角色层级 + 用户名验证
✨ 新功能
1. 文件哈希去重 + 引用计数
- File 模型新增 refCount、contentHash、originalFileKey 列
- 上传时检查其他用户是否已有相同 bookHash 的文件
- 如有,创建引用(不复制字节),返回 deduped: true 让客户端跳过上传
- 删除时递减 refCount,refCount=0 才删除物理文件
- 多用户共享同一本书时只存一份物理文件
2. 回收站功能
- RecycleBinItem 模型 + migration 019
- GET /api/recycle-bin — 列出回收站项目,自动清理过期项
- POST /api/recycle-bin/restore — 恢复项目
- POST /api/recycle-bin/clear — 永久删除项目
- ENV: RECYCLE_BIN_EXPIRE_DAYS(默认 30 天)
3. 角色层级(超级管理员 > 管理员 > 普通用户)
- utils/permissions.ts: isSuperAdmin, isAdmin, canManageUser
- SUPER_ADMIN_EMAIL 环境变量标识超级管理员
- 超级管理员:金色标识,可管理所有用户(除其他超管和自身)
- 管理员:蓝色标识,只能管理普通用户
- 任何人都不能操作超级管理员或自身
4. 用户名验证
- 拒绝 @、尖括号、引号、斜杠、控制字符
- 在管理员创建/编辑用户 API 中强制验证
5. 7 条新中文翻译
📦 升级方式
docker compose pull && docker compose up -d包含数据库 schema 变更:files 新增 3 列 + recycle_bin_items 新表。