当前位置: 首页 > Web前端 > vue.js

什么是RBAC权限管理?

时间:2023-04-01 11:15:45 vue.js

1。使用场景:为了达到不同账号登录系统后看到不同页面,执行不同功能的目的,我们有很多解决方案,RBAC(Role-BasedAccesscontrol)权限模型,是一种基于角色的权限分配解决方案。图示简单易懂:2、三个关键点:用户:就是使用系统的人(员工)权限点:这个系统有多少个功能(比如:有3个页面,每个页面都有不同的功能)按钮操作)作用:不同权限点的集合。基于角色的设计思想。为员工配置角色(一个员工可以有多个角色)和为角色配置权限点(一个角色可以有多个权限点)。只要员工有角色,自动拥有该角色绑定的所有权限点3.根据权限设计思路,对应业务模块员工管理角色管理权限点管理(无调整余地:将严格对应当前系统的功能!)employeesgetauthorityData员工信息接口包含当前员工的所有权限数据userInfo:{roles:{menus:[],//菜单权限数据点:[]//按钮权限数据}}使用权限数据做具体的权限处理1.菜单权限控制登录>菜单权限数据>匹配所有本地动态路由数据>获取根据权限过滤的动态路由数据,加入路由系统(可以根据路径标识渲染组件addRoutes)添加到左侧菜单渲染(vuex管理+v-for遍历)按钮权限控制登录>buttonpermissiondata>usethebutton'sseparatepermissionIDinthepermissiondata4.自定义指令指令:v-for,v-if....自定义指令:自己定义的指令,因为指令本身不够用,所以我们需要自己定义它们。用于按钮级权限控制查看自定义指令注册格式//注册一个全局自定义指令`v-focus`Vue.directive('focus',{//当绑定元素插入DOM时inserted会自动执行inserted:function(el,binding){//v-focus="'abc'"===>binding.value='abc'console.log('focus....binding',binding.value)//焦点元素el.focus()}})使用格式解决按钮级权限验证在main.js中,定义一个全局指令//注册一个全局的self定义指令`v-allow`Vue.directive('allow',{inserted:function(el,binding){//从vuex中取出点,constpoints=store.state.user.userInfo.roles.points//如果如果点有binding.value,就会显示if(points.includes(binding.value)){//console.log('判断这个元素是否显示',el,binding.value)}else{el.parentNode.removeChild(el)//el.style.display='none'}}})使用导入excel这里:'import_employee'是从标识符