一套系统权限分数据权限和功能权限
功能权限 RBAC
功能权限一般是指对接口的控制权限,系统都是依靠各个接口来实现不同的功能。
功能权限一般通过RBAC模型来实现。
RBAC即用户、角色、权限。
其中权限一般与api相对应,是具体控制api是否允许请求的具体执行单位。
角色是一组权限的集合。
用户与某些角色相绑定,则拥有这些角色下的权限集合,也就有个某些接口的访问权限。
权限是与api相关的,基本上系统开发完其权限也就确定了。而角色和用户都是后期可操作绑定的。
权限除了与api相对应也可以与页面相应对,即可以把前端的页面设置成权限,这样前端可以根据用户所拥有的权限进行动态显示。
数据权限 固定权限
开发中经常碰到需要对数据集进行控制的权限,比如有三个级别:总公司、子公司、部门,各个级别能管理的数据集是不同的,并且前端显示的内容页面也不相同,这就涉及到数据权限了。
数据权限特点就是固定,有多少级,每级数据范围是多少都是在开发系统前确定的,所以可以提前在系统里定义好数据权限的标识,整套系统根据这个标识来确定数据范围,前端显示等。
用户也可动态绑定这个标识。
设计
一套系统可以同时搞这两套权限用户可以对这两种权限都进行绑定,比如用户可以是总公司数据权限同时可以在绑定个总经理的rbac权限。
其他
要是系统功能和数据权限界限清晰,根本不需要动态去控制,比如阿里的服务器控制台,和阿里的运维平台,一个用户操作一个阿里操作,数据和功能都很清晰,就不需要搞什么权限,直接搞两套系统就可。