首先创建 用户-角色-权限 三个实体类 和 用户与角色关系表和 角色与权限关系表
- 用户表UserInfo:在用户表中保存了用户的基本信息,账号、密码、姓名等;
- 权限表SysPermission(资源+控制权限):这个表中主要是保存了用户的URL地址,权限信息;
- 角色表SysRole:在这个表重要保存了系统存在的角色;
关联表:用户-角色管理表SysRoleUser(用户在系统中都有什么角色,比如admin,manage等),角色-权限关联表SysRolePermission(每个角色对应什么权限可以进行操作)。
用户实体
@TableName("user_info")
public class UserInfo extends BaseEntity<UserInfo> {
private static final long serialVersionUID = 1L;
private Long id;//用户id;
private String name;//名称(昵称或者真实姓名,不同系统不同定义)
private String password; //密码;
private String salt;//加密密码的盐
private Integer state;//用户状态,0:创建未认证(比如没有激活,没有输入验证码等等)--等待验证的用户 , 1:正常状态,2:用户被锁定.
@TableField("user_name")
private String userName; //账号.
@TableField(exist=false)
private List<SysRole> roleList;// 一个用户具有多个角色
}
角色实体
@TableName("sys_role")
public class SysRole extends BaseEntity<SysRole> {
private static final long serialVersionUID = 1L;
private String available;// 是否可用,如果不可用将不会添加给用户
private String description; // 角色描述,UI界面显示使用
private Long id;// 编号
private String role; // 角色标识程序中判断使用,如"admin",这个是唯一的:
@TableField(exist = false)
private List<SysPermission> permissions;// 角色 - 权限关系定义;
}
权限实体
@TableName("sys_permission")
public class SysPermission extends BaseEntity<SysPermission> {
private static final long serialVersionUID = 1L;
private Long id;
private String name;
@TableField("parent_id")
private Integer parentId;
@TableField("parent_ids")
private String parentIds;
private String permission;
@TableField("resource_type")
private String resourceType;
private String url;
}
对应关系实体(mybatisPlus生成)
@TableName("sys_role_user")
public class SysRoleUser extends Model<SysRoleUser> {
private static final long serialVersionUID = 1L;
private Long id;
private Long roleId;
private Long uid;
}
@TableName("sys_role_permission")
public class SysRolePermission extends Model<SysRolePermission> {
private static final long serialVersionUID = 1L;
private Integer id;
private Lo