fix: close remaining Z39 slug isolation gaps

Bind preview rows and published API base paths to the active module slug so cloned or stale state cannot address another module.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
whm
2026-08-07 17:34:15 +08:00
parent 473113682f
commit 154f849f57
5 changed files with 13 additions and 11 deletions

View File

@@ -186,9 +186,8 @@ func (l *PublishLogic) Publish(slug string, req *types.PublishReq) (*types.Publi
if slug != "" && slug != incoming.Meta.Slug {
incoming.Meta.Slug = slug
}
if incoming.Apis.BasePath == "" || strings.Contains(incoming.Apis.BasePath, "-") {
incoming.Apis.BasePath = "/api/v1/apps/" + slug
}
// Z39API 地址只由本次发布路径 slug 决定,禁止克隆蓝图沿用旧模块 base_path
incoming.Apis.BasePath = "/api/v1/apps/" + slug
mode := strings.ToLower(strings.TrimSpace(req.Mode))
if mode == "" {
@@ -568,9 +567,7 @@ func (l *PublishLogic) publishHostMetaOnly(
bp := existing.Blueprint
bp.Meta.Name = moduleName
bp.Meta.Slug = slug
if bp.Apis.BasePath == "" {
bp.Apis.BasePath = "/api/v1/apps/" + slug
}
bp.Apis.BasePath = "/api/v1/apps/" + slug
rec := existing
rec.Name = moduleName