215 字
1 分钟
按钮级权限:shop 的 RBAC 四件套
四件套
lib/permission/ app_role.dart # 角色定义(店长/收银/技师…) app_permission.dart # 权限点定义 app_permission_service.dart # 判权:有没有、从哪来、过期没 app_permission_widget.dart # 控件:无权限直接不渲染页面路由守卫只能拦住“进不去”,按钮级权限管的是“看不见”——收银看不到成本价、技师看不到全店报表。app_permission_widget 包一层,有权限才渲染,权限判断不散落在 onPressed 里。
权限数据的来源
角色随登录下发(user_service 缓存),app_permission_service 做本地判定 + 过期刷新。后端接口也要二次校验——前端权限是体验,后端权限才是安全,这句 README 式的话,每个项目都值得写一遍。
RBAC 落地清单:角色建模、权限点枚举、判权服务、显隐控件、后端复核,五层缺一不可。