用户-角色-权限-组设计
数据设计
用户以拥有角色和从属于某个组来实现权限
Users(id,用户名,密码,姓,名,email,isActive,IP,用户类型)
Roles(id,角色名称,描述,类型(比如系统级别,普通级别等))
Permissions(id,权限名称,描述,类型)
Groups(id,组名称,父id,组管理员id,描述)
User_Role(id,用户id,角色id,分配者id)
Role_Permission(id,角色id,权限id)
Group_User(id,组id,用户id)
Groups_Admin(组id,用户id)
Group_Role(id,组id,角色id,分配者id)
屏蔽用户(id,用户id,屏蔽原因,屏蔽者id)
屏蔽组(id,组id,屏蔽原因,屏蔽者id)
数据字典
Users
字段名 | 长度 | 是否为空 | 主/外键 | 备注 |
Id | Long | 否 | 主键 |
|
logName | varchar(30) | 否 |
| 登录名 |
Password | Varchar(255) | 否 |
| 密码(加密) |
| Varchar(255) | 否 |
| 邮箱,登录可按email登录 |
isActive | Bit(1) | 否 |
| 是否激活 |
IP | Varchar(20) |
|
|
|
UserType |
| 否 |
| 用户类型 管理员,普通用户,高级用户。可考虑使用用户组代替该字段 |
Roles
字段名 | 长度 | 是否为空 | 主/外键 | 备注 |
Id | Long | 否 | 主键 |
|
Name | varchar(30) | 否 |
| 角色名称 |
description | Text | 否 |
| 描述 |
Type | Varchar(255) | 否 |
| 类型(系统级别,普通级别) |
Permissions
字段名 | 长度 | 是否为空 | 主/外键 | 备注 |
Id | Long | 否 | 主键 |
|
Name | varchar(30) | 否 |
| 权限名称 |
description | Text | 否 |
| 描述 |
Type | Varchar(255) | 否 |
| 类型 |
Groups
字段名 | 长度 | 是否为空 | 主/外键 | 备注 |
Id | Long |
| 主键 |
|
Name | varchar(30) | 否 | 否 | 组名称 |
Pid | Long |
| 外键 | 父Id,关联自身 |
Mid | Long |
| 外键 | 组管理员ID(创建者),关联Users表 |
description | Text | 否 | 否 | 描述 |
Type | Varchar(255) |
| 否 | 类型 |
接口设计
接口 | UserService |
功能 | 方法 |
获取所有用户列表 |
|
获取所有用户id列表 |
|
获取所有活动用户列表 |
|
获取所有活动用户id列表 |
|
获取所有非活动用户列表 |
|
获取所有非活动用户id列表 |
|
通过id获取用户 |
|
通过id列表获取用户列表 |
|
创建用户 |
|
通过用户id删除用户 |
|
删除某一个用户 |
|
删除多个用户 |
|
更新用户信息 |
|
更改用户密码 |
|
判断用户类型(超级,管理员,组管理,可授权用户) |
|
用户类型,角色检查 |
|
获取某类型用户列表 |
|
获取某类型用户id列表 |
|
修改某用户的类型 |
|
查询用户 |
|
获取某用户所在的组列表 |
|
获取某用户拥有的角色列表 |
|
获取某用户不拥有的角色列表 |
|
获取某管理员赋予某用户的角色列表 |
|
|
|
接口 | RoleService |
功能 | 方法 |
获取所有角色列表 |
|
获取所有角色列表id |
|
通过id获取某角色 |
|
通过名称获取某角色 |
|
创建角色 |
|
通过id删除某角色 |
|
通过id列表删除角色 |
|
删除一个角色 |
|
更新角色 |
|
模糊查询角色 |
|
查询角色,排除查询者角色列表 |
|
获取该角色拥有的权限列表 |
|
获取该角色未拥有的权限列表 |
|
分配某权限给某角色 |
|
分配多个权限给某角色 |
|
分配某权限给多个角色 |
|
删除某角色拥有的某权限 |
|
删除某角色拥有的多个权限 |
|
获取拥有该角色的组列表 |
|
获取拥有该角色的用户列表 |
|
|
|
将角色分配给某用户 |
|
将角色从某用户回收 |
|
将角色分配给组 |
|
将角色从某组回收 |
|
将角色分配给多个用户 |
|
将角色分配给多个组 |
|
将角色从多个用户回收 |
|
将角色从多个组回收 |
|
屏蔽 |
|
取消屏蔽 |
|
|
|
接口 | PermissionService |
功能 | 方法 |
获取所有权限列表 |
|
获取所有权限id列表 |
|
获取某类型权限列表 |
|
获取某类型权限id列表 |
|
通过id获取某权限 |
|
通过名称获取某权限 |
|
创建某权限 |
|
删除某权限 |
|
通过id删除某权限 |
|
删除多个权限 |
|
更新权限 |
|
接口 | GroupService |
功能 | 方法 |
获取所有组列表 |
|
获取所有组id列表 |
|
通过id获取某组 |
|
通过名称获取某组 |
|
创建组 |
|
通过id删除某组 |
|
删除多个组 |
|
更新组信息 |
|
判断某用户是否组管理员 |
|
获取组管理员列表 |
|
获取组管理员id列表 |
|
获取父组 |
|
获取父组id |
|
获取所有祖先祖 |
|
获取所有子组 |
|
获取所有兄弟组 |
|
获取所有子孙组 |
|
获取某用户管理的所有组 |
|
查找组 |
|
获取某组的角色列表 |
|
获取某组未拥有的角色列表 |
|
获取某组用户列表 |
|
添加某用户到组 |
|
添加多个用户到组 |
|
删除组某用户 |
|
删除某组多个用户 |
|
判断某用户是否在某组里 |
|
获取不在组里的所有用户 |
|
|
|