用户-角色-权限-组设计
数据设计
用户以拥有角色和从属于某个组来实现权限
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 |
|
获取所有祖先祖 |
|
获取所有子组 |
|
获取所有兄弟组 |
|
获取所有子孙组 |
|
获取某用户管理的所有组 |
|
查找组 |
|
获取某组的角色列表 |
|
获取某组未拥有的角色列表 |
|
获取某组用户列表 |
|
添加某用户到组 |
|
添加多个用户到组 |
|
删除组某用户 |
|
删除某组多个用户 |
|
判断某用户是否在某组里 |
|
获取不在组里的所有用户 |
|
|
|