创建独立用户与账号资源管理
Java MaxKB 支持由管理员创建本地普通账号,复用官方前端的用户管理页面。
创建用户
- 打开
http://localhost:3000/ui/,使用管理员账号登录。 - 进入 系统 → 用户管理。英文界面对应 System → User。
- 点击 创建用户 / Create User,填写用户名、邮箱、姓名及密码并保存。
- 为其他人员重复创建。新账号固定为普通用户,创建请求不能指定管理员角色。
- 用户退出管理员登录后用自己的账号登录。多人同时测试时使用不同浏览器配置文件或不同浏览器,避免共用本地登录状态。
用户名使用 6~20 位字母、数字或 _ . @ -;密码为 6~20 位。用户名创建后保持不变,资料编辑可更新邮箱、电话和姓名。管理员可禁用、启用、重置密码或删除普通用户;删除采用逻辑删除,不自动删除其知识库与应用,用户名也不复用。管理员不能被禁用或删除。
独立范围
普通账号分别拥有自己的知识库、应用、私有模型及聊天记录,列表按归属筛选。通过接口直接请求其他账号的知识库或应用也会校验权限;应用关联知识库时校验归属。嵌套文档、段落、问题 ID 及问题批量操作同时校验所属知识库。公共模型可供普通用户选择使用,但不能由普通用户修改管理员模型。主动分享的聊天链接按分享访问规则工作,不等同于创建独立管理账号。
系统管理员保留管理权限。这是同一实例内的账号与资源权限隔离;如果要求连数据库、管理员、模型密钥和运行进程都完全独立,应分别部署 Java 服务及数据库。
后端接口
| 接口 | 行为 |
|---|---|
GET /api/valid/user/{size} | 管理员创建用户入口检查 |
GET /api/user_manage/{page}/{size} | 用户分页,支持 email_or_username 查询 |
POST /api/user_manage | 创建普通用户 |
PUT /api/user_manage/{id} | 修改资料或 is_active |
PUT /api/user_manage/{id}/re_password | 提交 password、re_password 重置密码 |
DELETE /api/user_manage/{id} | 逻辑删除普通用户 |
用户管理接口仅向管理员开放。账号启停、删除或重置密码会递增会话版本,已有令牌失效。禁用和删除状态在每次认证请求时检查。
新密码使用带独立随机盐的 PBKDF2 存储;已有账号仍可按原存储格式登录,管理员重置后使用新格式。列表和创建结果不返回密码散列。
执行初始化脚本会应用 007-user-sessions.sql,为用户表增加 token_version。构建继续使用 -Dgpg.skip=true。前端升级及单独的定制记录见 补丁维护。
验收
使用两个临时普通账号验证创建、登录、角色不能提升、应用及知识库列表隔离、跨账号详情和修改请求拒绝、用户管理拒绝、密码重置使旧令牌失效以及禁用后的登录拒绝。管理员页面验证用户列表及创建对话框。临时账号验收后停用,正式账号由管理员按实际人员创建。
Docker 部署按用户要求暂缓,隔离 Python 接口保留;容器环境未就绪时执行会被拒绝。账号管理、知识库检索与远程模型调用不依赖 Docker。
