权限体系说明
权限体系说明
用户角色概览
轻笺采用三级权限体系:游客 → 注册用户 → 管理员(root),权限逐级递增。
各角色权限详情
👤 游客(未登录)
游客是未登录状态,可访问公开内容但无法创建或修改任何数据。
| 权限项 | 状态 |
|---|---|
| 浏览书签首页 | ✅ |
| 浏览工作台 | ✅ |
| 浏览帮助中心 | ✅ |
| 创建/编辑/删除书签 | ❌ |
| 创建/编辑/删除笔记 | ❌ |
| 上传/删除文件 | ❌ |
| 使用 AI 助手 | ❌ |
| 创建/管理标签 | ❌ |
| 访问后台管理 | ❌ |
| 意见反馈 | ❌ |
👤 注册用户
注册用户可管理自己的所有资源,数据与其他人隔离。
| 权限项 | 状态 |
|---|---|
| 书签:新增、编辑、删除、批量操作、导入导出 | ✅ |
| 笔记:新建、编辑、删除、导出、AI 笔记助手 | ✅ |
| 文件(云空间):上传、下载、分享、删除、批量操作 | ✅ |
| 标签:创建、编辑、删除、标签图谱 | ✅ |
| 搜索:全局搜索、资源中心 | ✅ |
| 回收站:查看、恢复、清空 | ✅ |
| 个人中心:主题、语言、密码修改、默认首页 | ✅ |
| 意见反馈:提交、查看回复 | ✅ |
| AI 助手:查询数据、翻译 | ✅ |
| 知识库:搜索公开文档 | ✅ |
| 后台管理/安全中心 | ❌ |
🔑 管理员(Root)
管理员拥有注册用户所有权限,外加系统管理权限。
| 额外权限 | 说明 |
|---|---|
| 后台管理面板 | 用户管理、操作日志、API 日志、图片管理、Agent 日志 |
| 安全中心 | 安全概览、事件管理、IP 信誉、账号信誉、规则配置、白名单 |
| 知识库管理 | 新增/编辑/删除/批量操作知识库文章 |
| 通用配置管理 | 更新日志编辑、系统配置 |
| 简易 SQL 控制台 | 执行只读 SQL 查询(排查用) |
| 查看其他用户数据 | 通过指定用户名可查询其他用户的书签/笔记/文件(Agent 专用) |
| 删除任意用户 | 用户管理中的删除操作 |
权限检查机制
后端权限控制
轻笺采用 inline 权限检查 而非全局中间件:
- 每个 handler 内部通过
req.user?.role判断权限 - Root 操作使用
ensureRootRole(req, res)工具函数,未通过时自动返回 403 - 非 root 的简单检查直接判断
req.user?.id和req.user?.role === 'visitor' - API 日志和操作日志不影响不阻断请求
数据隔离
- 所有业务查询(书签、笔记、文件、标签)都带
WHERE user_id = ?条件 - 用户只能操作自己的数据
- 管理员通过 Agent 查其他用户数据时,需指定用户名并经过
resolveUser函数验证
登录认证
- 基于 Session ID(httpOnly cookie)+ 数据库会话表
- 登录有效期:普通登录 24 小时,勾选"记住我"7 天
- 移动端支持 X-Session-Id 请求头作为 cookie 后备
- 会话定期清理过期数据
账号封禁
- 被封禁的账号无法执行任何业务操作(登录、退出除外)
- 封禁由安全中心的账号信誉系统自动触发或管理员手动操作
- 被封禁时 API 返回 HTTP 423 状态码