多用户与角色:owner / admin / reader 三级,用户管理页 + 密码上库
- users 表加 password_hash 列;后台账号(owner+admin)密码 bcrypt 存行内, 首次登录把 env / settings 引导凭据自迁移成行哈希 - 会话 token 从用户名改为携带用户 ID,角色与停用状态每请求查库, 改角色 / 停用账号即时生效(存量会话立即 401) - 登录:先查 users 表,再走 settings 哈希 / env 引导链; admin/admin 开发模式在任何账号设过密码后失效 - 权限:系统设置、用户管理仅 owner;内容管理 admin+owner; admin 后台新增 用户 页(创建 / 重置密码 / 停用 / 删除), 设置页「登录与存储」tab 对管理员隐藏 - 账户页加修改密码表单(旧密码校验,OAuth/Passkey 首设免旧密码); 评论区管理员身份跟随各自账号,不再统一挂站主名下 - 修复:providers 为 nil 时账户页白屏(Go nil slice 序列化成 null)
This commit is contained in:
1 parent
e5dee4daf1
commit
4bb2ff4145
23 files changed
+917
-222
No files matched your search
@@ -42,10 +42,14 @@ ONE_ADMIN_USER=admin ONE_ADMIN_PASSWORD=换一个 make start
|
||||
保存后立即生效,无需重启。这些值存在 `settings` 表里,生效规则是
|
||||
「后台填了用后台的,没填回落到环境变量」——老部署不改 env 也能照常跑。
|
||||
|
||||
秘密项(client secret、Bot token、R2 密钥、管理员密码)在后台只显示
|
||||
秘密项(client secret、Bot token、R2 密钥)在后台只显示
|
||||
「是否已配置、来自哪里」,永不回显明文;留空保存 = 保持现值。
|
||||
管理员密码在后台以 bcrypt 哈希存储;显式设置过的 `ONE_ADMIN_PASSWORD`
|
||||
保留作解锁后路(env 和数据库在同一台机器上,能读 env 的人本来就能改库)。
|
||||
|
||||
**多用户与角色**:站主(owner,全库唯一)可在后台 **用户** 页创建内容管理员
|
||||
(admin),管理员能写文章、管理评论与文件,但系统设置、用户管理与第三方凭据
|
||||
只有站主动。密码 bcrypt 存在 users 表上,各账号在「账户」页自行修改;
|
||||
显式设置过的 `ONE_ADMIN_PASSWORD` 保留作站主的解锁后路,
|
||||
admin/admin 开发模式在任何账号设置过密码后立即失效。
|
||||
|
||||
环境变量只剩启动期必需项:
|
||||
|
||||
|
||||
Reference in new issue
Block a user