Files
flvx/.entire/metadata/ses_34d1fa4b1ffeH4sVbjXkh5P6IY/context.md
T
sagit a43653f252 fix: permission checks for speedId and inPort + multi-node IP constraints (#261)
* feat: restrict user permissions and multi-node IP constraints

- Non-admin users cannot set speedId or inPort on forward create/update
- Multi-entrance tunnels disable custom listen IP for forwards
- Multi-exit tunnels disable custom connect IP
- Multi-node hop chains disable custom connect IP per hop
- Remove tunnel-first-IP fallback in forward ingress resolution
- Add contract tests for non-admin permission restrictions

Entire-Checkpoint: 133693290660

* fix: allow non-admin users to submit null speedId and zero inPort

- Backend: Check speedId is not nil before rejecting non-admin requests
- Backend: Only reject inPort if value > 0 for non-admin users
- Frontend: Only include speedId and inPort in payload for admin users
- Tests: Add contract tests for null speedId and zero inPort cases
2026-03-04 14:50:36 +08:00

1.5 KiB
Raw Blame History

Session Context

Session ID: ses_34d1fa4b1ffeH4sVbjXkh5P6IY Commit Message: 实施

Prompts

Prompt 1

转发导入,ny兼容格式,不要选择入口,改成选择隧道,修改兼容一下

Prompt 2

自动分配端口(推荐)

Prompt 3

实施

Summary

已实施完成,这次改动把 ny 导入完全对齐到“选隧道”流程,并按你指定支持“端口缺失自动分配”。

  • ny 解析兼容增强:支持字段别名、可选端口
    • 修改 vite-frontend/src/pages/forward/import-format.ts
    • listen_port 现在允许为 null(缺失即自动分配)
    • 兼容字段:dest/dst/target/targets、listen_port/listenPort/port/in_port/inPort、name/forward_name/forwardName
    • dest 支持数组或逗号分隔字符串,统一归一化
  • 导入 UI 文案已同步更新(强调按所选隧道导入 + 端口可省略)
    • 修改 vite-frontend/src/pages/forward.tsx:4623、vite-frontend/src/pages/forward.tsx:4699
  • 测试已补齐并通过
    • 修改 vite-frontend/src/pages/forward/import-format.test.ts
    • 新增用例:缺失端口自动分配、别名字段兼容、inPort: null 映射
  • 计划文档已新增并完成勾选
    • plans/002-ny-import-tunnel-selection-compat.md

验证结果:

  • npm run build(vite-frontend)通过
  • node --test src/pages/forward/import-format.test.ts 7/7 通过

如果你要,我下一步可以直接帮你提交一个规范 commit。