维护数据库
Current 采用 SQLite 本地数据库存储数据,分为两个数据库文件:
/backend/orion.db
- users: 存储用户数据
- sessions: 存储当前已登录用户的活跃会话
- permissions: 存储用户权限
- configuration: 存储系统配置(公告内容)
- auditlog: 存储操作日志
/backend/current.db
- issues: 存储期刊数据
- entries: 存储稿件数据
- sudo: 专门存储超级管理员在管理面板的活跃会话
由于 Current 还在开发中,暂未完全实现管理面板功能,因此部分管理操作需要您直接操作 SQLite 数据库。
您需要一个可用的 SQLite 数据库编辑软件(如 Navicat、JetBrains DataGrip、DB Browser for SQLite)来操作数据库。
管理用户
用户数据存储于 orion.db 的 users 表中。
| 列名 | 类型 | 描述 |
|---|---|---|
| id | INTEGER | 用户 ID |
| name | TEXT | 用户名 |
| passwd | TEXT | 密码(SHA-256 加密) |
| grade | TEXT | 用户年级 |
| classnum | TEXT | 用户班级 |
| active | TEXT | 是 否活跃(true 或 false) |
您可以通过直接编辑 users 表来添加、删除用户数据,或是重置密码。
密码 123456 对应的 SHA-256 加密值为 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92。您可以依据此为其他用户重置密码。
如何计算 SHA-256?前往 SHA-256 Calculator。
管理用户权限
用户权限存储于 orion.db 的 permissions 表中。
| 列名 | 类型 | 描述 |
|---|---|---|
| target | TEXT | 权限应用目标 |
| node | TEXT | 权限节点名 |
权限数据以权限节点的方式存储,并且以 group. 起始的权限节点拥有继承性。
对于普通用户,必须 授予 group.default 权限(这 包括 client.login、client.changepass 等基础权限),否则用户无法登录(利用此机制也可以做到封禁账号的效果)。
对于管理员,可直接授予 * 权限,即拥有所有权限。
管理期刊
期刊数据存储于 current.db 的 issues 表中。
| 列名 | 类型 | 描述 |
|---|---|---|
| id | INTEGER | 期刊 ID |
| date | INTEGER | 期刊截止日期(Unix 时间戳) |
| subject2 | TEXT | 期刊第 2 版标题 |
| subject3 | TEXT | 期刊第 3 版标题 |
| subject4 | TEXT | 期刊第 4 版标题 |
| leader | TEXT | 期刊主编 (暂时弃用) |
| editors | TEXT | 期刊编辑,以 [...] 列表形式存储 (暂时弃用) |
| respeditor | TEXT | 责任编辑 (暂时弃用) |
| ispublished | INTEGER | 期刊是否已发布(0 为未发布,1 为已发布) |
对于新建期刊,可直接在前端 /newissue 完成。
管理稿件
稿件数据存储于 current.db 的 entries 表中。
| 列名 | 类型 | 描述 |
|---|---|---|
| uuid | TEXT | 稿件 UUID |
| issue_id | INTEGER | 期刊 ID |
| filename | TEXT | 稿件原始文件名 |
| page | INTEGER | 稿件版号 |
| title | TEXT | 稿件标题 |
| origin | TEXT | 稿件来源 |
| wordcount | INTEGER | 稿件字数 |
| description | TEXT | 稿件简介 |
| selector | TEXT | 稿件选稿人 |
| reviewer | TEXT | 稿件审稿人 |
| status | TEXT | 稿件状态 |
大部分稿件数据可以在前端 /issue/[issue_id] 完成,但是审稿人、选稿人等数据需要在数据库中手动编辑。
为保证服务器安全,上传的文件不会保留原始名称,而是重命名为稿件 uuid,可在 /backend/uploads 目录下找到。
稿件状态一般有三种:created 为已创建,reviewed 为已审稿,selected 为已选录。
状态为 pending 的稿件为上传时出现连接丢失等问题,如无特殊情况可以选择忽略或删除。