1
wanniwa 287 天前
前端都不展示,还跟前端有毛关系,后端自己加接口权限
|
2
iOCZS 287 天前
尽管不是菜单,但是可能是 tab 或者 button ,这种情况是需要指定一个权限的。前端从用户信息里获取权限列表,确定是否要展示 tab 或者 button 。当然进一步,还要控制接口权限,如果需要的话。
|
5
iOCZS 287 天前
@NoKey 看你怎么设计表。你也看到了权限分为菜单、按钮、接口几种,其中按钮经常对应某个接口,所以看起来可以用同一个权限名字。对于前端,就是用权限名称控制按钮是否显示。对于后端,就是用权限名称判断用户是否有调用权限。好像还是数据权限一说,对于同一个接口,不同的角色能访问的数据还不相同。还在研究中。。。
|
6
wanniwa 287 天前
@NoKey #4 正常是直接后端返回当前用户的可以使用的权限资源,一般就是 menu 接口或者用户信息查询接口会给,里面会加上字段去判断是不是菜单。但是像你说的部分功能你就可以理解成按钮权限,更细化的权限。因为每个权限后端定义的时候都会给一个 code ,你在实现的时候,你只管当前用户权限集合中有没有这个 code 来展示元素就行了,比如:sys:role:list ,角色列表不展示,并不用纠结是不是菜单。
|
7
wanniwa 287 天前
@NoKey #4 你在渲染菜单数的时候可以过滤掉不是菜单的数据,但是底层你得缓存一份全量的权限 code 数据,方便你自封封装个属性类似 hasPermis='sys:role:list' 只要加在元素上子就会判断当前用户权限 code 中是否存在,没有就不展示
|
8
learnshare 287 天前
前端的权限一般要分成 页面(是否可见)和 操作( RCUD 等,可以随意扩展) 两部分
菜单对应的是页面权限,页面中的内容和功能放在操作权限里 接口访问权限交给后端处理就好了 |
9
x250881478 287 天前
看你们业务需求 粒度准备控制到多细了, 权限最终就是一个字符串或数字标识 根据这个标识, 前端判断是否能展示, 是否能发起请求. 后端判断是否响应请求.
粗粒度的可以用类似角色这种来控制, 判断的是用户是否是某个角色 细粒度的就可以非常精确了, 可以给页面, 按钮, tab, 接口等全部设置权限标识, 最终根据标识决定用户哪些功能可用 |
10
LeeSeoung 286 天前
进页面前把涉及的权限 ID 都发送到后台判断是否有权限,每一条权限 ID 有对应的组件,前台根据返回结果判断是否展示元素。后台再加一层拦截调用对应功能前再判断一次权限 ID 就可以了。
|
11
dudubaba 286 天前
1 、通用菜单
2 、每个菜单都有对应的父级,父级没权限子菜单肯定也没。 |
12
leonkfd 285 天前
1. 登录后将后端返回的角色路由存到 store
2. 页面菜单栏:将全量的菜单目录根据当前权限过滤出所需菜单 3. 配置路由守卫:每次跳转路由都判断有无权限 |