Visual LabINTERACTIVE LEARNING
07 · ENTERPRISE UIP113 MIN

动态路由、按钮权限与多角色界面

让界面准确反映当前能力,同时保持服务端授权为最终权威。

MENTAL MODELPERMISSION-AWARE UI
01Select Organization
02Load Effective Capabilities
03Render Routes / Actions
04API Re-check
前端不是权限保险箱,而是权限结果的可用性投影:显示能做的、解释不能做的、服务端再次验证。
01 · CONCEPTS & BOUNDARIES

先把概念与边界说清楚

定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。

01

Dynamic Route

根据模块、功能开关和权限构建可访问导航与路由。

02

Button Permission

按动作能力决定显示、禁用或请求审批,并提供原因。

03

Multi-role UI

同一用户可能在多个组织或同时拥有多个角色,界面需显示当前上下文。

04

Data Permission

列表、计数、导出与详情都必须基于服务端返回的数据范围。

02 · BLIND BOTS CASE

用户切换 Dealer 后仍看到旧菜单

问题现场

权限只在登录时加载,组织切换后缓存未清理。

  1. 01

    能力缓存键加入 membership/organization。

  2. 02

    切换时取消旧请求并重建路由。

  3. 03

    API 从当前认证上下文验证组织。

得到什么

UI 与服务端上下文一致,不再残留上一个租户的入口和数据。

03 · PRACTICE

马上动手

  1. 设计 hidden、disabled、request-access 三种动作状态。
  2. 列出组织切换需要清理的缓存。
04 · PITFALLS

常见坑

  • v-if 当安全控制
  • 只保护页面不保护导出
  • 角色名硬编码在组件里
05 · KNOWLEDGE CHECK按钮无权限时应该隐藏还是禁用?查看答案⌄
答案

取决于产品语义:无关能力可隐藏,需要解释或可申请的能力可禁用并说明原因;无论哪种服务端都必须拒绝越权请求。