diff --git a/controller/user.go b/controller/user.go index eda4f7f12e63..c73dcba97754 100644 --- a/controller/user.go +++ b/controller/user.go @@ -861,6 +861,7 @@ func CreateUser(c *gin.Context) { Username: user.Username, Password: user.Password, DisplayName: user.DisplayName, + Group: user.Group, Role: user.Role, // 保持管理员设置的角色 } if err := cleanUser.Insert(0); err != nil { @@ -868,9 +869,45 @@ func CreateUser(c *gin.Context) { return } + // 生成默认令牌 + if constant.GenerateDefaultToken { + key, err := common.GenerateKey() + if err != nil { + c.JSON(http.StatusOK, gin.H{ + "success": false, + "message": "生成默认令牌失败", + }) + common.SysLog("failed to generate token key: " + err.Error()) + return + } + // 生成默认令牌 + token := model.Token{ + UserId: cleanUser.Id, // 使用插入后的用户ID + Name: cleanUser.Username + "的初始令牌", + Key: key, + CreatedTime: common.GetTimestamp(), + AccessedTime: common.GetTimestamp(), + ExpiredTime: -1, // 永不过期 + RemainQuota: 500000, // 示例额度 + UnlimitedQuota: true, + ModelLimitsEnabled: false, + } + if setting.DefaultUseAutoGroup { + token.Group = "auto" + } + if err := token.Insert(); err != nil { + c.JSON(http.StatusOK, gin.H{ + "success": false, + "message": "创建默认令牌失败", + }) + return + } + } + c.JSON(http.StatusOK, gin.H{ "success": true, "message": "", + "userId": cleanUser.Id, }) return }