2.5 KiB
2.5 KiB
Change: 列表状态字段无权限时改为隐藏而不是禁用
Why
当前多个列表页对“状态 / 上架状态 / 激活状态”采用 disabled 开关来处理无权限用户。这样虽然阻止了正常点击,但仍然暴露了前端交互控件,既不符合“无权限不应展示操作入口”的权限体验,也会引发对 DOM 篡改后是否还能触发接口调用的安全疑虑。
业务现在明确要求:对于列表中的状态类交互字段,如果用户没有对应权限,则前端直接隐藏该字段,不再显示禁用态开关。
What Changes
- 将以下列表页中的状态类交互字段统一从“无权限时禁用”改为“无权限时隐藏”:
- 角色管理:
role:update_status - 运营商管理:
carrier:update_status - 套餐系列:
package_series:update_status - 套餐列表-状态:
package:update_status - 套餐列表-上架状态:
package:update_away - 代理系列授权:
series_grants:update_status - 店铺列表:
shop:modify_status - 账号列表:
account:modify_status - 企业客户:
enterprise_customer:status - 微信配置-激活状态:
wechat_config:status
- 角色管理:
- 对于无权限用户:
- 前端列表中不再渲染对应状态字段/列
- 前端不再渲染 disabled 的
ElSwitch或其他禁用态交互控件作为占位
- 对于有权限用户:
- 保持现有状态切换交互与接口调用行为不变
- 套餐列表需要将“状态”和“上架状态”视为两个独立权限入口分别控制显示
- 本次仅调整列表页中的状态类交互字段展示策略,不修改搜索栏状态筛选项,也不扩展到详情页或新增/编辑弹窗中的表单字段
- 前端隐藏仅作为 UI 层权限收敛,不能替代后端接口鉴权;后端仍需继续拒绝无权限的直接状态更新请求
Impact
- Affected specs:
list-status-permission-visibility
- Affected code:
src/views/system/role/index.vuesrc/views/system/carrier-management/index.vuesrc/views/package-management/package-series/index.vuesrc/views/package-management/package-list/index.vuesrc/views/package-management/series-grants/index.vuesrc/views/shop-management/list/index.vuesrc/views/account-management/account/index.vuesrc/views/account-management/enterprise-customer/index.vuesrc/views/settings/wechat-config/index.vue
- Dependencies:
- 现有
useAuth/hasAuth权限判断 - 现有后端状态更新接口权限校验
- 现有