前端细粒度权限控制

在Saas平台不可避免的会涉及到不同角色在同一个页面上对页面展示,页面功能进行权限控制的需求。

以往的想法是:

1. 设置菜单不同权限,后端根据当前登录用户权限组返回菜单
2. 当一个用户访问接口的时候,也设置权限检测。

这样确实能做到页面级别的权限控制,页面上的操作按钮向后端提交请求的时候,也可以根据具体情况来决定是否允许用户操作。

但是如果页面上的操作UI或者展示部分也有权限要求的话,其实是比较难做的。
之前做法就是针对每个UI做一个判断当前用户属于什么用户组标识时是否展示。

最近看了一下eladmin的源码,觉得他的方法很好。但是需要前后端一起控制。

1. 管理员在eladmin中进行按钮级别的配置,并给予权限标识。保存至后端。
2. 用户登录之后,返回用户所在的分组和个别权限的数组,存入store中。
3. 在编写页面的时候标识需要不同UI组件的权限标识。
4. 编写一个指令,在渲染的时候进行判断,当前用户的权限列表是否和UI组件的权限标识重合。如果不重合即不显示按钮。

这样做即将权限配置和控制结合在了一起。
但是这个结合并不是强制结合和唯一性,如果手滑修改了权限配置一个按钮可能立马在不同用户前显示就会不一样。
而且权限命名规则也要统一,工作流程上也要考虑是有页面具体开发工程师提供权限标识给到系统管理员,还是管理员进行分配。
且,这里自动化程度不高,人为操作很容易造成错误,且不易检查。

你可能感兴趣的:(前端细粒度权限控制)