使用若依框架,若依支持前后端嵌套项目、前后端分离项目、Spring Cloud分布式项目,若依完整地实现了RBAC(基于角色的访问控制),方便结合实际业务开发出带有权限控制的后台管理系统。
首先创建若依后台的部门、角色、用户,部门与用户是一对多的关系,角色与用户是多对多的关系。通过角色可以控制对应用户可以访问的菜单及接口,角色中设置了全局可访问的菜单及接口。
自建的用户体系绑定到若依系统的用户,自建用户与若依系统用户是一对多的关系,即一个若依系统用户只能查看一个自建用户的数据,一个自建用户的数据可以被多个若依系统的用户查看。
针对超级管理员,自建用户体系中设置其所有者值为null,可以查看所有的数据,MyBatis使用if-when;针对一般用户的管理员,自建用户体系中设置其所有者值为用户id,通过与若依用户的关联关系,查看其账户下的所有数据。
若依系统自有获取登录若依用户的方法,再写一个获取登录的若依用户对应的自建体系的用户的Helper,通过Helper,直接获取到登录的自建体系用户。在CRUD环境中,若通过Helper获取到的自建体系用户为null,说明为超管,传null到select、update、delete,获取到自建体系的所有数据;若通过Helper获取到的自建体系用户不为null,说明为一般管理员,绑定了自建体系的用户,传自建体系用户id到select、update、delete,获取到自建体系中当前用户所关联的数据。
如此,在若依系统中使用若依用户登录,获取到的数据都是这个若依用户所关联的自建体系用户的所有数据,操作的便是自建体系用户的所有数据,即自建体系用户通过若依框架管理所属相关数据。