fix(api): 素材同步 - 增加 ID 长度边界校验
This commit is contained in:
1 parent
f5bb9ed4f9
commit
fdb31832e5
2 files changed
+55
-1
No files matched your search
@@ -5,6 +5,7 @@ import (
|
||||
"errors"
|
||||
"strings"
|
||||
"time"
|
||||
"unicode/utf8"
|
||||
|
||||
"infinite-canvas/backend/internal/model"
|
||||
|
||||
@@ -295,6 +296,13 @@ func assetFromJSON(userID string, raw json.RawMessage) (model.Asset, error) {
|
||||
if id == "" {
|
||||
id = newID()
|
||||
}
|
||||
if utf8.RuneCountInString(id) > model.AssetIDMaxLength {
|
||||
return model.Asset{}, BadAuthRequest("素材 ID 不能超过 80 个字符")
|
||||
}
|
||||
primaryVersionID := strings.TrimSpace(payload.PrimaryVersionID)
|
||||
if utf8.RuneCountInString(primaryVersionID) > 36 {
|
||||
return model.Asset{}, BadAuthRequest("素材主版本 ID 不能超过 36 个字符")
|
||||
}
|
||||
category := model.AssetCategory(strings.TrimSpace(payload.Category))
|
||||
if category == "" {
|
||||
category = model.AssetCategoryOther
|
||||
@@ -309,7 +317,7 @@ func assetFromJSON(userID string, raw json.RawMessage) (model.Asset, error) {
|
||||
Kind: strings.TrimSpace(payload.Kind),
|
||||
Category: category,
|
||||
Status: status,
|
||||
PrimaryVersionID: strings.TrimSpace(payload.PrimaryVersionID),
|
||||
PrimaryVersionID: primaryVersionID,
|
||||
Title: strings.TrimSpace(payload.Title),
|
||||
PayloadJSON: string(raw),
|
||||
CreatedAt: createdAt,
|
||||
|
||||
Reference in new issue
Block a user