fix: 权限按钮可见性与Modal/Popconfirm撤权一致性修复 #45

Merged
wangziqi merged 3 commits from worktree-audit-permission-ui into main 2026-07-23 06:40:19 +00:00
Owner

修复内容

统一前端权限 UI 入口与后端 RequirePermission 合同,禁止"无权限仍显示入口→点击 403"。

权限按钮可见性修复

  • 学生敏感信息/导入/金数据/档案按正确权限隐藏
  • 教师档案、租赁合同、教室/宿舍/费用/入住导入按权限隐藏
  • 课程考勤 pull/edit/export 按精确权限控制
  • 集成创建班级、AI /查寝/Switch 按权限不渲染
  • 入住归档前后端统一为 occupancy:delete

权限状态 fail-closed

  • unknown/loading/ready 状态机,profile 未完成前不展示旧 localStorage 权限
  • profile 临时失败自动 5s 重试
  • 跨标签 token/permissions 变化触发 reload
  • online/visibilitychange 触发重新验证

Modal/Popconfirm 撤权关闭

  • Occupancies/Students/Rooms Modal 权限撤销时自动关闭
  • 归档 Popconfirm 整组件条件渲染
  • useViewSensitive confirm 在 log:create 失效时自动销毁

机构权限最小化

  • 新增 GET /organizations/options (id/name/isHost)
  • 完整列表继续仅 organization:view

验证

  • Admin 88 tests ✓ Server 720 passed 1 skipped ✓
  • TSC + Vite build ✓
## 修复内容 统一前端权限 UI 入口与后端 RequirePermission 合同,禁止"无权限仍显示入口→点击 403"。 ### 权限按钮可见性修复 - 学生敏感信息/导入/金数据/档案按正确权限隐藏 - 教师档案、租赁合同、教室/宿舍/费用/入住导入按权限隐藏 - 课程考勤 pull/edit/export 按精确权限控制 - 集成创建班级、AI /查寝/Switch 按权限不渲染 - 入住归档前后端统一为 occupancy:delete ### 权限状态 fail-closed - unknown/loading/ready 状态机,profile 未完成前不展示旧 localStorage 权限 - profile 临时失败自动 5s 重试 - 跨标签 token/permissions 变化触发 reload - online/visibilitychange 触发重新验证 ### Modal/Popconfirm 撤权关闭 - Occupancies/Students/Rooms Modal 权限撤销时自动关闭 - 归档 Popconfirm 整组件条件渲染 - useViewSensitive confirm 在 log:create 失效时自动销毁 ### 机构权限最小化 - 新增 GET /organizations/options (id/name/isHost) - 完整列表继续仅 organization:view ### 验证 - Admin 88 tests ✓ Server 720 passed 1 skipped ✓ - TSC + Vite build ✓
wangziqi added 3 commits 2026-07-23 06:39:40 +00:00
fix: harden permission-gated UI — minimum-org endpoint, modal/Popconfirm fail-closed on revocation
wangziqi merged commit 2a20b1fc97 into main 2026-07-23 06:40:19 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangziqi/gongxue-base#45
No description provided.