ソースを参照

fix: playground group

[email protected] 1 年間 前
コミット
6a8a4bcf65
2 ファイル変更12 行追加1 行削除
  1. 5 0
      common/user_groups.go
  2. 7 1
      controller/relay.go

+ 5 - 0
common/user_groups.go

@@ -21,3 +21,8 @@ func UpdateUserUsableGroupsByJSONString(jsonStr string) error {
 	UserUsableGroups = make(map[string]string)
 	UserUsableGroups = make(map[string]string)
 	return json.Unmarshal([]byte(jsonStr), &UserUsableGroups)
 	return json.Unmarshal([]byte(jsonStr), &UserUsableGroups)
 }
 }
+
+func GroupInUserUsableGroups(groupName string) bool {
+	_, ok := UserUsableGroups[groupName]
+	return ok
+}

+ 7 - 1
controller/relay.go

@@ -68,9 +68,15 @@ func Playground(c *gin.Context) {
 	}
 	}
 	c.Set("original_model", playgroundRequest.Model)
 	c.Set("original_model", playgroundRequest.Model)
 	group := playgroundRequest.Group
 	group := playgroundRequest.Group
+	userGroup := c.GetString("group")
+
 	if group == "" {
 	if group == "" {
-		group = c.GetString("group")
+		group = userGroup
 	} else {
 	} else {
+		if !common.GroupInUserUsableGroups(group) && group != userGroup {
+			openaiErr = service.OpenAIErrorWrapperLocal(errors.New("无权访问该分组"), "group_not_allowed", http.StatusForbidden)
+			return
+		}
 		c.Set("group", group)
 		c.Set("group", group)
 	}
 	}
 	c.Set("token_name", "playground-"+group)
 	c.Set("token_name", "playground-"+group)