编号:H-03 严重级:medium 工作线:管理后端(internal/admin) + 后台网页(web/) 来源:审查 A-15 依赖:无 被依赖:无
采用审查 A-15 的方案,分两部分:
handleEndpointPatch
patchEndpoint
internal/admin/endpoints.go(handleEndpointPatch)。
internal/admin/endpoints.go
W-05 负责对应界面;endpoints.go 的其他函数由 H-05、H-07、U-03 修改。
enabled:false
以下是本次复审各区审查报告的原文段落。A、M、I、P、S 开头的是原始发现编号(A 管理后台与网页、M 消息核心、I 身份认证群在线、P 传输平台部署、S SDK)。解决方案以本 issue 上方的"结论与统一方案"为准;原文里的方案与之不一致时,按上方执行。
enabled
identity.Disable
EndpointsView.vue:231-246
447-450
290-308
endpoints.go:350-384
patchEndpoint(..., req.Enabled)
dialog.warning
nil
EndpointsView.vue
复审基线:main 4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。
4059a15
已合入 origin/main 0c9b459。落地提交 ac08b6c fix: 端启停改为仅由 identity 执行 (#46)。
0c9b459
ac08b6c
No dependencies set.
The note is not visible to the blocked user.
编号:H-03 严重级:medium 工作线:管理后端(internal/admin) + 后台网页(web/) 来源:审查 A-15
依赖:无 被依赖:无
结论与统一方案
采用审查 A-15 的方案,分两部分:
handleEndpointPatch给patchEndpoint传 nil 的 enabled,启停只由 identity 执行;identity 失败时不留下"已停用但消息未作废、连接未踢"的半生效状态。改动文件
internal/admin/endpoints.go(handleEndpointPatch)。与其他问题的交互 / 冲突说明
W-05 负责对应界面;endpoints.go 的其他函数由 H-05、H-07、U-03 修改。
验收与测试
enabled:false返回 500,且端仍是启用状态。问题明细(各区审查原文,证据含文件与行号)
[A-15] 编辑弹窗总是提交
enabled,关掉"启用"没有确认;后端可能处于半生效状态enabled值。如果此期间 API 令牌停用了这个端,这次保存会悄悄把它重新启用。enabled交给patchEndpoint先直接写库。之后若identity.Disable失败,接口返回 500,但端已经是停用状态,消息却没有作废,连接也没有踢掉。EndpointsView.vue:231-246(总是提交 enabled)、447-450(开关);批量确认框在290-308。endpoints.go:350-384:patchEndpoint(..., req.Enabled)之后再走 identity。dialog.warning:"停用会立即断开并作废未送达消息,不可恢复"。patchEndpoint传nil的 enabled,启停只由 identity 执行。EndpointsView.vue、internal/admin/endpoints.go。enabled:false后端仍是启用状态。复审基线:main
4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。已合入 origin/main
0c9b459。落地提交ac08b6cfix: 端启停改为仅由 identity 执行 (#46)。