Skip to content

Readest Lite v8.19.0 — 文件去重 + 回收站 + 角色层级

Choose a tag to compare

@cshdotcom cshdotcom released this 06 Sep 07:30
· 32 commits to main since this release

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 新表。