Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cocktail-party-server
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cocktail-party
cocktail-party-server
Commits
9b3767a9
提交
9b3767a9
authored
8月 21, 2022
作者:
RuoYi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化多角色数据权限匹配规则
上级
851dc54b
隐藏空白字符变更
内嵌
并排
正在显示
21 个修改的文件
包含
203 行增加
和
67 行删除
+203
-67
SysDeptController.java
...va/com/ruoyi/web/controller/system/SysDeptController.java
+0
-23
SysRoleController.java
...va/com/ruoyi/web/controller/system/SysRoleController.java
+21
-2
SysUserController.java
...va/com/ruoyi/web/controller/system/SysUserController.java
+15
-0
DataScope.java
.../src/main/java/com/ruoyi/common/annotation/DataScope.java
+5
-0
UserConstants.java
...rc/main/java/com/ruoyi/common/constant/UserConstants.java
+5
-0
SysRole.java
...ain/java/com/ruoyi/common/core/domain/entity/SysRole.java
+15
-1
DataScopeAspect.java
...ain/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
+10
-3
PermissionContextHolder.java
...i/framework/security/context/PermissionContextHolder.java
+21
-0
PermissionService.java
...va/com/ruoyi/framework/web/service/PermissionService.java
+2
-0
SysPermissionService.java
...com/ruoyi/framework/web/service/SysPermissionService.java
+17
-1
SysMenuMapper.java
.../src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java
+8
-0
ISysDeptService.java
...c/main/java/com/ruoyi/system/service/ISysDeptService.java
+8
-0
ISysMenuService.java
...c/main/java/com/ruoyi/system/service/ISysMenuService.java
+8
-0
SysDeptServiceImpl.java
...ava/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
+13
-0
SysMenuServiceImpl.java
...ava/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
+21
-0
SysMenuMapper.xml
...system/src/main/resources/mapper/system/SysMenuMapper.xml
+8
-0
dept.js
ruoyi-ui/src/api/system/dept.js
+0
-16
role.js
ruoyi-ui/src/api/system/role.js
+9
-2
user.js
ruoyi-ui/src/api/system/user.js
+8
-0
index.vue
ruoyi-ui/src/views/system/role/index.vue
+5
-12
index.vue
ruoyi-ui/src/views/system/user/index.vue
+4
-7
没有找到文件。
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
浏览文件 @
9b3767a9
...
@@ -78,29 +78,6 @@ public class SysDeptController extends BaseController
...
@@ -78,29 +78,6 @@ public class SysDeptController extends BaseController
return
AjaxResult
.
success
(
deptService
.
selectDeptById
(
deptId
));
return
AjaxResult
.
success
(
deptService
.
selectDeptById
(
deptId
));
}
}
/**
* 获取部门下拉树列表
*/
@GetMapping
(
"/treeselect"
)
public
AjaxResult
treeselect
(
SysDept
dept
)
{
List
<
SysDept
>
depts
=
deptService
.
selectDeptList
(
dept
);
return
AjaxResult
.
success
(
deptService
.
buildDeptTreeSelect
(
depts
));
}
/**
* 加载对应角色部门列表树
*/
@GetMapping
(
value
=
"/roleDeptTreeselect/{roleId}"
)
public
AjaxResult
roleDeptTreeselect
(
@PathVariable
(
"roleId"
)
Long
roleId
)
{
List
<
SysDept
>
depts
=
deptService
.
selectDeptList
(
new
SysDept
());
AjaxResult
ajax
=
AjaxResult
.
success
();
ajax
.
put
(
"checkedKeys"
,
deptService
.
selectDeptListByRoleId
(
roleId
));
ajax
.
put
(
"depts"
,
deptService
.
buildDeptTreeSelect
(
depts
));
return
ajax
;
}
/**
/**
* 新增部门
* 新增部门
*/
*/
...
...
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
浏览文件 @
9b3767a9
...
@@ -17,6 +17,7 @@ import com.ruoyi.common.annotation.Log;
...
@@ -17,6 +17,7 @@ import com.ruoyi.common.annotation.Log;
import
com.ruoyi.common.constant.UserConstants
;
import
com.ruoyi.common.constant.UserConstants
;
import
com.ruoyi.common.core.controller.BaseController
;
import
com.ruoyi.common.core.controller.BaseController
;
import
com.ruoyi.common.core.domain.AjaxResult
;
import
com.ruoyi.common.core.domain.AjaxResult
;
import
com.ruoyi.common.core.domain.entity.SysDept
;
import
com.ruoyi.common.core.domain.entity.SysRole
;
import
com.ruoyi.common.core.domain.entity.SysRole
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.model.LoginUser
;
import
com.ruoyi.common.core.domain.model.LoginUser
;
...
@@ -27,6 +28,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
...
@@ -27,6 +28,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import
com.ruoyi.framework.web.service.SysPermissionService
;
import
com.ruoyi.framework.web.service.SysPermissionService
;
import
com.ruoyi.framework.web.service.TokenService
;
import
com.ruoyi.framework.web.service.TokenService
;
import
com.ruoyi.system.domain.SysUserRole
;
import
com.ruoyi.system.domain.SysUserRole
;
import
com.ruoyi.system.service.ISysDeptService
;
import
com.ruoyi.system.service.ISysRoleService
;
import
com.ruoyi.system.service.ISysRoleService
;
import
com.ruoyi.system.service.ISysUserService
;
import
com.ruoyi.system.service.ISysUserService
;
...
@@ -44,13 +46,16 @@ public class SysRoleController extends BaseController
...
@@ -44,13 +46,16 @@ public class SysRoleController extends BaseController
@Autowired
@Autowired
private
TokenService
tokenService
;
private
TokenService
tokenService
;
@Autowired
@Autowired
private
SysPermissionService
permissionService
;
private
SysPermissionService
permissionService
;
@Autowired
@Autowired
private
ISysUserService
userService
;
private
ISysUserService
userService
;
@Autowired
private
ISysDeptService
deptService
;
@PreAuthorize
(
"@ss.hasPermi('system:role:list')"
)
@PreAuthorize
(
"@ss.hasPermi('system:role:list')"
)
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SysRole
role
)
public
TableDataInfo
list
(
SysRole
role
)
...
@@ -242,4 +247,18 @@ public class SysRoleController extends BaseController
...
@@ -242,4 +247,18 @@ public class SysRoleController extends BaseController
roleService
.
checkRoleDataScope
(
roleId
);
roleService
.
checkRoleDataScope
(
roleId
);
return
toAjax
(
roleService
.
insertAuthUsers
(
roleId
,
userIds
));
return
toAjax
(
roleService
.
insertAuthUsers
(
roleId
,
userIds
));
}
}
/**
* 获取对应角色部门树列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:list')"
)
@GetMapping
(
value
=
"/deptTree/{roleId}"
)
public
AjaxResult
deptTree
(
@PathVariable
(
"roleId"
)
Long
roleId
)
{
AjaxResult
ajax
=
AjaxResult
.
success
();
ajax
.
put
(
"checkedKeys"
,
deptService
.
selectDeptListByRoleId
(
roleId
));
ajax
.
put
(
"depts"
,
deptService
.
selectDeptTreeList
(
new
SysDept
()));
return
ajax
;
}
}
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
浏览文件 @
9b3767a9
...
@@ -20,6 +20,7 @@ import com.ruoyi.common.annotation.Log;
...
@@ -20,6 +20,7 @@ import com.ruoyi.common.annotation.Log;
import
com.ruoyi.common.constant.UserConstants
;
import
com.ruoyi.common.constant.UserConstants
;
import
com.ruoyi.common.core.controller.BaseController
;
import
com.ruoyi.common.core.controller.BaseController
;
import
com.ruoyi.common.core.domain.AjaxResult
;
import
com.ruoyi.common.core.domain.AjaxResult
;
import
com.ruoyi.common.core.domain.entity.SysDept
;
import
com.ruoyi.common.core.domain.entity.SysRole
;
import
com.ruoyi.common.core.domain.entity.SysRole
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.common.core.page.TableDataInfo
;
...
@@ -27,6 +28,7 @@ import com.ruoyi.common.enums.BusinessType;
...
@@ -27,6 +28,7 @@ import com.ruoyi.common.enums.BusinessType;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.poi.ExcelUtil
;
import
com.ruoyi.common.utils.poi.ExcelUtil
;
import
com.ruoyi.system.service.ISysDeptService
;
import
com.ruoyi.system.service.ISysPostService
;
import
com.ruoyi.system.service.ISysPostService
;
import
com.ruoyi.system.service.ISysRoleService
;
import
com.ruoyi.system.service.ISysRoleService
;
import
com.ruoyi.system.service.ISysUserService
;
import
com.ruoyi.system.service.ISysUserService
;
...
@@ -46,6 +48,9 @@ public class SysUserController extends BaseController
...
@@ -46,6 +48,9 @@ public class SysUserController extends BaseController
@Autowired
@Autowired
private
ISysRoleService
roleService
;
private
ISysRoleService
roleService
;
@Autowired
private
ISysDeptService
deptService
;
@Autowired
@Autowired
private
ISysPostService
postService
;
private
ISysPostService
postService
;
...
@@ -234,4 +239,14 @@ public class SysUserController extends BaseController
...
@@ -234,4 +239,14 @@ public class SysUserController extends BaseController
userService
.
insertUserAuth
(
userId
,
roleIds
);
userService
.
insertUserAuth
(
userId
,
roleIds
);
return
success
();
return
success
();
}
}
/**
* 获取部门树列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:user:list')"
)
@GetMapping
(
"/deptTree"
)
public
AjaxResult
deptTree
(
SysDept
dept
)
{
return
AjaxResult
.
success
(
deptService
.
selectDeptTreeList
(
dept
));
}
}
}
ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java
浏览文件 @
9b3767a9
...
@@ -25,4 +25,9 @@ public @interface DataScope
...
@@ -25,4 +25,9 @@ public @interface DataScope
* 用户表的别名
* 用户表的别名
*/
*/
public
String
userAlias
()
default
""
;
public
String
userAlias
()
default
""
;
/**
* 权限字符(如不填默认会自动根据注解获取)
*/
public
String
permission
()
default
""
;
}
}
ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
浏览文件 @
9b3767a9
...
@@ -12,6 +12,11 @@ public class UserConstants
...
@@ -12,6 +12,11 @@ public class UserConstants
*/
*/
public
static
final
String
SYS_USER
=
"SYS_USER"
;
public
static
final
String
SYS_USER
=
"SYS_USER"
;
/**
* ss标记的权限字符
*/
public
static
final
String
SS_PERMISSION
=
"SS_PERMISSION"
;
/** 正常状态 */
/** 正常状态 */
public
static
final
String
NORMAL
=
"0"
;
public
static
final
String
NORMAL
=
"0"
;
...
...
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
浏览文件 @
9b3767a9
package
com
.
ruoyi
.
common
.
core
.
domain
.
entity
;
package
com
.
ruoyi
.
common
.
core
.
domain
.
entity
;
import
java.util.Set
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.Size
;
import
javax.validation.constraints.Size
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
...
@@ -59,6 +60,9 @@ public class SysRole extends BaseEntity
...
@@ -59,6 +60,9 @@ public class SysRole extends BaseEntity
/** 部门组(数据权限) */
/** 部门组(数据权限) */
private
Long
[]
deptIds
;
private
Long
[]
deptIds
;
/** 角色菜单权限 */
private
Set
<
String
>
permissions
;
public
SysRole
()
public
SysRole
()
{
{
...
@@ -203,7 +207,17 @@ public class SysRole extends BaseEntity
...
@@ -203,7 +207,17 @@ public class SysRole extends BaseEntity
{
{
this
.
deptIds
=
deptIds
;
this
.
deptIds
=
deptIds
;
}
}
public
Set
<
String
>
getPermissions
()
{
return
permissions
;
}
public
void
setPermissions
(
Set
<
String
>
permissions
)
{
this
.
permissions
=
permissions
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
new
ToStringBuilder
(
this
,
ToStringStyle
.
MULTI_LINE_STYLE
)
return
new
ToStringBuilder
(
this
,
ToStringStyle
.
MULTI_LINE_STYLE
)
...
...
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
浏览文件 @
9b3767a9
...
@@ -11,8 +11,9 @@ import com.ruoyi.common.core.domain.BaseEntity;
...
@@ -11,8 +11,9 @@ import com.ruoyi.common.core.domain.BaseEntity;
import
com.ruoyi.common.core.domain.entity.SysRole
;
import
com.ruoyi.common.core.domain.entity.SysRole
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.model.LoginUser
;
import
com.ruoyi.common.core.domain.model.LoginUser
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.framework.security.context.PermissionContextHolder
;
/**
/**
* 数据过滤处理
* 数据过滤处理
...
@@ -70,8 +71,9 @@ public class DataScopeAspect
...
@@ -70,8 +71,9 @@ public class DataScopeAspect
// 如果是超级管理员,则不过滤数据
// 如果是超级管理员,则不过滤数据
if
(
StringUtils
.
isNotNull
(
currentUser
)
&&
!
currentUser
.
isAdmin
())
if
(
StringUtils
.
isNotNull
(
currentUser
)
&&
!
currentUser
.
isAdmin
())
{
{
String
permission
=
StringUtils
.
defaultIfEmpty
(
controllerDataScope
.
permission
(),
PermissionContextHolder
.
getContext
());
dataScopeFilter
(
joinPoint
,
currentUser
,
controllerDataScope
.
deptAlias
(),
dataScopeFilter
(
joinPoint
,
currentUser
,
controllerDataScope
.
deptAlias
(),
controllerDataScope
.
userAlias
());
controllerDataScope
.
userAlias
()
,
permission
);
}
}
}
}
}
}
...
@@ -83,8 +85,9 @@ public class DataScopeAspect
...
@@ -83,8 +85,9 @@ public class DataScopeAspect
* @param user 用户
* @param user 用户
* @param deptAlias 部门别名
* @param deptAlias 部门别名
* @param userAlias 用户别名
* @param userAlias 用户别名
* @param permission 权限字符
*/
*/
public
static
void
dataScopeFilter
(
JoinPoint
joinPoint
,
SysUser
user
,
String
deptAlias
,
String
userAlias
)
public
static
void
dataScopeFilter
(
JoinPoint
joinPoint
,
SysUser
user
,
String
deptAlias
,
String
userAlias
,
String
permission
)
{
{
StringBuilder
sqlString
=
new
StringBuilder
();
StringBuilder
sqlString
=
new
StringBuilder
();
List
<
String
>
conditions
=
new
ArrayList
<
String
>();
List
<
String
>
conditions
=
new
ArrayList
<
String
>();
...
@@ -96,6 +99,10 @@ public class DataScopeAspect
...
@@ -96,6 +99,10 @@ public class DataScopeAspect
{
{
continue
;
continue
;
}
}
if
(
StringUtils
.
isNotEmpty
(
permission
)
&&
StringUtils
.
isNotEmpty
(
role
.
getPermissions
())
&&
!
role
.
getPermissions
().
contains
(
permission
))
{
continue
;
}
if
(
DATA_SCOPE_ALL
.
equals
(
dataScope
))
if
(
DATA_SCOPE_ALL
.
equals
(
dataScope
))
{
{
sqlString
=
new
StringBuilder
();
sqlString
=
new
StringBuilder
();
...
...
ruoyi-framework/src/main/java/com/ruoyi/framework/security/context/PermissionContextHolder.java
0 → 100644
浏览文件 @
9b3767a9
package
com
.
ruoyi
.
framework
.
security
.
context
;
/**
* 权限信息
*
* @author ruoyi
*/
public
class
PermissionContextHolder
{
private
static
final
ThreadLocal
<
String
>
contextHolder
=
new
ThreadLocal
<>();
public
static
void
setContext
(
String
permission
)
{
contextHolder
.
set
(
permission
);
}
public
static
String
getContext
()
{
return
contextHolder
.
get
();
}
}
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
浏览文件 @
9b3767a9
...
@@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.entity.SysRole;
...
@@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.entity.SysRole;
import
com.ruoyi.common.core.domain.model.LoginUser
;
import
com.ruoyi.common.core.domain.model.LoginUser
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.framework.security.context.PermissionContextHolder
;
/**
/**
* RuoYi首创 自定义权限实现,ss取自SpringSecurity首字母
* RuoYi首创 自定义权限实现,ss取自SpringSecurity首字母
...
@@ -43,6 +44,7 @@ public class PermissionService
...
@@ -43,6 +44,7 @@ public class PermissionService
{
{
return
false
;
return
false
;
}
}
PermissionContextHolder
.
setContext
(
permission
);
return
hasPermissions
(
loginUser
.
getPermissions
(),
permission
);
return
hasPermissions
(
loginUser
.
getPermissions
(),
permission
);
}
}
...
...
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java
浏览文件 @
9b3767a9
package
com
.
ruoyi
.
framework
.
web
.
service
;
package
com
.
ruoyi
.
framework
.
web
.
service
;
import
java.util.HashSet
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.Set
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
com.ruoyi.common.core.domain.entity.SysRole
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.system.service.ISysMenuService
;
import
com.ruoyi.system.service.ISysMenuService
;
import
com.ruoyi.system.service.ISysRoleService
;
import
com.ruoyi.system.service.ISysRoleService
;
...
@@ -59,7 +61,21 @@ public class SysPermissionService
...
@@ -59,7 +61,21 @@ public class SysPermissionService
}
}
else
else
{
{
perms
.
addAll
(
menuService
.
selectMenuPermsByUserId
(
user
.
getUserId
()));
List
<
SysRole
>
roles
=
user
.
getRoles
();
if
(!
roles
.
isEmpty
()
&&
roles
.
size
()
>
1
)
{
// 多角色设置permissions属性,以便数据权限匹配权限
for
(
SysRole
role
:
roles
)
{
Set
<
String
>
rolePerms
=
menuService
.
selectMenuPermsByRoleId
(
role
.
getRoleId
());
role
.
setPermissions
(
rolePerms
);
perms
.
addAll
(
rolePerms
);
}
}
else
{
perms
.
addAll
(
menuService
.
selectMenuPermsByUserId
(
user
.
getUserId
()));
}
}
}
return
perms
;
return
perms
;
}
}
...
...
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java
浏览文件 @
9b3767a9
...
@@ -34,6 +34,14 @@ public interface SysMenuMapper
...
@@ -34,6 +34,14 @@ public interface SysMenuMapper
*/
*/
public
List
<
SysMenu
>
selectMenuListByUserId
(
SysMenu
menu
);
public
List
<
SysMenu
>
selectMenuListByUserId
(
SysMenu
menu
);
/**
* 根据角色ID查询权限
*
* @param roleId 角色ID
* @return 权限列表
*/
public
List
<
String
>
selectMenuPermsByRoleId
(
Long
roleId
);
/**
/**
* 根据用户ID查询权限
* 根据用户ID查询权限
*
*
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
浏览文件 @
9b3767a9
...
@@ -19,6 +19,14 @@ public interface ISysDeptService
...
@@ -19,6 +19,14 @@ public interface ISysDeptService
*/
*/
public
List
<
SysDept
>
selectDeptList
(
SysDept
dept
);
public
List
<
SysDept
>
selectDeptList
(
SysDept
dept
);
/**
* 查询部门树结构信息
*
* @param dept 部门信息
* @return 部门树信息集合
*/
public
List
<
TreeSelect
>
selectDeptTreeList
(
SysDept
dept
);
/**
/**
* 构建前端所需要树结构
* 构建前端所需要树结构
*
*
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
浏览文件 @
9b3767a9
...
@@ -38,6 +38,14 @@ public interface ISysMenuService
...
@@ -38,6 +38,14 @@ public interface ISysMenuService
*/
*/
public
Set
<
String
>
selectMenuPermsByUserId
(
Long
userId
);
public
Set
<
String
>
selectMenuPermsByUserId
(
Long
userId
);
/**
* 根据角色ID查询权限
*
* @param roleId 角色ID
* @return 权限列表
*/
public
Set
<
String
>
selectMenuPermsByRoleId
(
Long
roleId
);
/**
/**
* 根据用户ID查询菜单树信息
* 根据用户ID查询菜单树信息
*
*
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
浏览文件 @
9b3767a9
...
@@ -48,6 +48,19 @@ public class SysDeptServiceImpl implements ISysDeptService
...
@@ -48,6 +48,19 @@ public class SysDeptServiceImpl implements ISysDeptService
return
deptMapper
.
selectDeptList
(
dept
);
return
deptMapper
.
selectDeptList
(
dept
);
}
}
/**
* 查询部门树结构信息
*
* @param dept 部门信息
* @return 部门树信息集合
*/
@Override
public
List
<
TreeSelect
>
selectDeptTreeList
(
SysDept
dept
)
{
List
<
SysDept
>
depts
=
SpringUtils
.
getAopProxy
(
this
).
selectDeptList
(
dept
);
return
buildDeptTreeSelect
(
depts
);
}
/**
/**
* 构建前端所需要树结构
* 构建前端所需要树结构
*
*
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
浏览文件 @
9b3767a9
...
@@ -100,6 +100,27 @@ public class SysMenuServiceImpl implements ISysMenuService
...
@@ -100,6 +100,27 @@ public class SysMenuServiceImpl implements ISysMenuService
return
permsSet
;
return
permsSet
;
}
}
/**
* 根据角色ID查询权限
*
* @param roleId 角色ID
* @return 权限列表
*/
@Override
public
Set
<
String
>
selectMenuPermsByRoleId
(
Long
roleId
)
{
List
<
String
>
perms
=
menuMapper
.
selectMenuPermsByRoleId
(
roleId
);
Set
<
String
>
permsSet
=
new
HashSet
<>();
for
(
String
perm
:
perms
)
{
if
(
StringUtils
.
isNotEmpty
(
perm
))
{
permsSet
.
addAll
(
Arrays
.
asList
(
perm
.
trim
().
split
(
","
)));
}
}
return
permsSet
;
}
/**
/**
* 根据用户ID查询菜单
* 根据用户ID查询菜单
*
*
...
...
ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
浏览文件 @
9b3767a9
...
@@ -111,6 +111,14 @@
...
@@ -111,6 +111,14 @@
where m.status = '0' and r.status = '0' and ur.user_id = #{userId}
where m.status = '0' and r.status = '0' and ur.user_id = #{userId}
</select>
</select>
<select
id=
"selectMenuPermsByRoleId"
parameterType=
"Long"
resultType=
"String"
>
select distinct m.perms
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
where m.status = '0' and rm.role_id = #{roleId}
</select>
<select
id=
"selectMenuById"
parameterType=
"Long"
resultMap=
"SysMenuResult"
>
<select
id=
"selectMenuById"
parameterType=
"Long"
resultMap=
"SysMenuResult"
>
<include
refid=
"selectMenuVo"
/>
<include
refid=
"selectMenuVo"
/>
where menu_id = #{menuId}
where menu_id = #{menuId}
...
...
ruoyi-ui/src/api/system/dept.js
浏览文件 @
9b3767a9
...
@@ -25,22 +25,6 @@ export function getDept(deptId) {
...
@@ -25,22 +25,6 @@ export function getDept(deptId) {
})
})
}
}
// 查询部门下拉树结构
export
function
treeselect
()
{
return
request
({
url
:
'/system/dept/treeselect'
,
method
:
'get'
})
}
// 根据角色ID查询部门树结构
export
function
roleDeptTreeselect
(
roleId
)
{
return
request
({
url
:
'/system/dept/roleDeptTreeselect/'
+
roleId
,
method
:
'get'
})
}
// 新增部门
// 新增部门
export
function
addDept
(
data
)
{
export
function
addDept
(
data
)
{
return
request
({
return
request
({
...
...
ruoyi-ui/src/api/system/role.js
浏览文件 @
9b3767a9
...
@@ -108,4 +108,12 @@ export function authUserSelectAll(data) {
...
@@ -108,4 +108,12 @@ export function authUserSelectAll(data) {
method
:
'put'
,
method
:
'put'
,
params
:
data
params
:
data
})
})
}
}
\ No newline at end of file
// 根据角色ID查询部门树结构
export
function
deptTreeSelect
(
roleId
)
{
return
request
({
url
:
'/system/role/deptTree/'
+
roleId
,
method
:
'get'
})
}
ruoyi-ui/src/api/system/user.js
浏览文件 @
9b3767a9
...
@@ -125,3 +125,11 @@ export function updateAuthRole(data) {
...
@@ -125,3 +125,11 @@ export function updateAuthRole(data) {
params
:
data
params
:
data
})
})
}
}
// 查询部门下拉树结构
export
function
deptTreeSelect
()
{
return
request
({
url
:
'/system/user/deptTree'
,
method
:
'get'
})
}
ruoyi-ui/src/views/system/role/index.vue
浏览文件 @
9b3767a9
...
@@ -254,9 +254,8 @@
...
@@ -254,9 +254,8 @@
</template>
</template>
<
script
>
<
script
>
import
{
listRole
,
getRole
,
delRole
,
addRole
,
updateRole
,
dataScope
,
changeRoleStatus
}
from
"@/api/system/role"
;
import
{
listRole
,
getRole
,
delRole
,
addRole
,
updateRole
,
dataScope
,
changeRoleStatus
,
deptTreeSelect
}
from
"@/api/system/role"
;
import
{
treeselect
as
menuTreeselect
,
roleMenuTreeselect
}
from
"@/api/system/menu"
;
import
{
treeselect
as
menuTreeselect
,
roleMenuTreeselect
}
from
"@/api/system/menu"
;
import
{
treeselect
as
deptTreeselect
,
roleDeptTreeselect
}
from
"@/api/system/dept"
;
export
default
{
export
default
{
name
:
"Role"
,
name
:
"Role"
,
...
@@ -364,12 +363,6 @@ export default {
...
@@ -364,12 +363,6 @@ export default {
this
.
menuOptions
=
response
.
data
;
this
.
menuOptions
=
response
.
data
;
});
});
},
},
/** 查询部门树结构 */
getDeptTreeselect
()
{
deptTreeselect
().
then
(
response
=>
{
this
.
deptOptions
=
response
.
data
;
});
},
// 所有菜单节点数据
// 所有菜单节点数据
getMenuAllCheckedKeys
()
{
getMenuAllCheckedKeys
()
{
// 目前被选中的菜单节点
// 目前被选中的菜单节点
...
@@ -396,8 +389,8 @@ export default {
...
@@ -396,8 +389,8 @@ export default {
});
});
},
},
/** 根据角色ID查询部门树结构 */
/** 根据角色ID查询部门树结构 */
get
RoleDeptTreeselect
(
roleId
)
{
get
DeptTree
(
roleId
)
{
return
roleDeptTrees
elect
(
roleId
).
then
(
response
=>
{
return
deptTreeS
elect
(
roleId
).
then
(
response
=>
{
this
.
deptOptions
=
response
.
depts
;
this
.
deptOptions
=
response
.
depts
;
return
response
;
return
response
;
});
});
...
@@ -543,12 +536,12 @@ export default {
...
@@ -543,12 +536,12 @@ export default {
/** 分配数据权限操作 */
/** 分配数据权限操作 */
handleDataScope
(
row
)
{
handleDataScope
(
row
)
{
this
.
reset
();
this
.
reset
();
const
roleDeptTreeselect
=
this
.
getRoleDeptTreeselect
(
row
.
roleId
);
const
deptTreeSelect
=
this
.
getDeptTree
(
row
.
roleId
);
getRole
(
row
.
roleId
).
then
(
response
=>
{
getRole
(
row
.
roleId
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
form
=
response
.
data
;
this
.
openDataScope
=
true
;
this
.
openDataScope
=
true
;
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
roleDeptTrees
elect
.
then
(
res
=>
{
deptTreeS
elect
.
then
(
res
=>
{
this
.
$refs
.
dept
.
setCheckedKeys
(
res
.
checkedKeys
);
this
.
$refs
.
dept
.
setCheckedKeys
(
res
.
checkedKeys
);
});
});
});
});
...
...
ruoyi-ui/src/views/system/user/index.vue
浏览文件 @
9b3767a9
...
@@ -342,9 +342,8 @@
...
@@ -342,9 +342,8 @@
</template>
</template>
<
script
>
<
script
>
import
{
listUser
,
getUser
,
delUser
,
addUser
,
updateUser
,
resetUserPwd
,
changeUserStatus
}
from
"@/api/system/user"
;
import
{
listUser
,
getUser
,
delUser
,
addUser
,
updateUser
,
resetUserPwd
,
changeUserStatus
,
deptTreeSelect
}
from
"@/api/system/user"
;
import
{
getToken
}
from
"@/utils/auth"
;
import
{
getToken
}
from
"@/utils/auth"
;
import
{
treeselect
}
from
"@/api/system/dept"
;
import
Treeselect
from
"@riophae/vue-treeselect"
;
import
Treeselect
from
"@riophae/vue-treeselect"
;
import
"@riophae/vue-treeselect/dist/vue-treeselect.css"
;
import
"@riophae/vue-treeselect/dist/vue-treeselect.css"
;
...
@@ -462,7 +461,7 @@ export default {
...
@@ -462,7 +461,7 @@ export default {
},
},
created
()
{
created
()
{
this
.
getList
();
this
.
getList
();
this
.
get
Treeselect
();
this
.
get
DeptTree
();
this
.
getConfigKey
(
"sys.user.initPassword"
).
then
(
response
=>
{
this
.
getConfigKey
(
"sys.user.initPassword"
).
then
(
response
=>
{
this
.
initPassword
=
response
.
msg
;
this
.
initPassword
=
response
.
msg
;
});
});
...
@@ -479,8 +478,8 @@ export default {
...
@@ -479,8 +478,8 @@ export default {
);
);
},
},
/** 查询部门下拉树结构 */
/** 查询部门下拉树结构 */
get
Treeselect
()
{
get
DeptTree
()
{
trees
elect
().
then
(
response
=>
{
deptTreeS
elect
().
then
(
response
=>
{
this
.
deptOptions
=
response
.
data
;
this
.
deptOptions
=
response
.
data
;
});
});
},
},
...
@@ -561,7 +560,6 @@ export default {
...
@@ -561,7 +560,6 @@ export default {
/** 新增按钮操作 */
/** 新增按钮操作 */
handleAdd
()
{
handleAdd
()
{
this
.
reset
();
this
.
reset
();
this
.
getTreeselect
();
getUser
().
then
(
response
=>
{
getUser
().
then
(
response
=>
{
this
.
postOptions
=
response
.
posts
;
this
.
postOptions
=
response
.
posts
;
this
.
roleOptions
=
response
.
roles
;
this
.
roleOptions
=
response
.
roles
;
...
@@ -573,7 +571,6 @@ export default {
...
@@ -573,7 +571,6 @@ export default {
/** 修改按钮操作 */
/** 修改按钮操作 */
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
this
.
reset
();
this
.
reset
();
this
.
getTreeselect
();
const
userId
=
row
.
userId
||
this
.
ids
;
const
userId
=
row
.
userId
||
this
.
ids
;
getUser
(
userId
).
then
(
response
=>
{
getUser
(
userId
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
form
=
response
.
data
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论