开源版的fastgpt默认只有root一个用户,有时候业务上不好区分应用和知识库。为些研究了一下mongodb发现只要添加对应的值就可以实现
- mongodb涉及的三个表teams、team_members、users
1、users用户表增加一条记录,其中用户增加的时候会给一个初始密码。
2、teams表增加一条记录
3、team_members 增加一条记录,其中team_members表增加记录包含了users和teams的id。
-
新增用户
-
db.getCollection("users").insert({ username: "demo", password: "756bc47cb5215dc3329ca7e1f7be33a2dad68990bb94b76d90aa07f4e44a233a", // 使用 hashStr 函数加密的密码 status: "active", avatar: "/icon/human.svg", balance: NumberInt("100000"), promotionRate: NumberInt("10"), timezone: "Asia/Shanghai", createTime: new ISODate() });
新增团队
-
db.getCollection("teams").insert({ name: "New Team", ownerId: ObjectId("65916f1a52ac39c5d10bb505"), // 新用户的 _id avatar: "/icon/newteam.svg", // 团队头像,根据需要调整 createTime: new ISODate(), balance: NumberInt("100000"), // 初始团队余额,根据需要调整 maxSize: NumberInt("10"), // 团队最大成员数,根据需要调整 __v: NumberInt("0") // 版本号,根据实际情况调整 });
加入用户到团队
-
db.getCollection("team.members").insert({ teamId: ObjectId("65916f3952ac39c5d10bb506"), // 使用与 root 用户相同的 teamId userId: ObjectId("65916f1a52ac39c5d10bb505"), // 新用户的 _id name: "Owner", role: "owner", status: "active", createTime: new ISODate(), defaultTeam: true });
操作完成后,就可以通过demo/1234来登陆了,是不是很方便?