From b7624be989e599505cdf2ccf4f43f3ac952733f0 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sun, 17 Sep 2023 16:37:54 +0800
Subject: [PATCH] 角色查询修改,只查询当前角色下级角色,用户查询排除超级管理员查询,角色数查询除超级管理员查询查全部外,其他角色只查询当有有的权限菜单
---
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml | 18 ++------
src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java | 1
src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml | 13 ++++--
src/main/java/org/springblade/modules/system/vo/RoleParam.java | 10 +++++
src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java | 3 +
src/main/java/org/springblade/modules/system/controller/MenuController.java | 25 +++++++-----
src/main/java/org/springblade/modules/system/controller/TenantController.java | 9 +++-
src/main/java/org/springblade/modules/system/controller/UserController.java | 7 +--
8 files changed, 51 insertions(+), 35 deletions(-)
diff --git a/src/main/java/org/springblade/modules/system/controller/MenuController.java b/src/main/java/org/springblade/modules/system/controller/MenuController.java
index 1046fee..099b042 100644
--- a/src/main/java/org/springblade/modules/system/controller/MenuController.java
+++ b/src/main/java/org/springblade/modules/system/controller/MenuController.java
@@ -25,6 +25,7 @@
import org.springblade.core.launch.constant.AppConstant;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.support.Kv;
@@ -173,8 +174,8 @@
@GetMapping("/routes")
@ApiOperationSupport(order = 8)
@ApiOperation(value = "前端菜单数据", notes = "前端菜单数据")
- public R<List<MenuVO>> routes(BladeUser user, Long topMenuId) {
- List<MenuVO> list = menuService.routes((user == null) ? null : user.getRoleId(), topMenuId);
+ public R<List<MenuVO>> routes(Long topMenuId) {
+ List<MenuVO> list = menuService.routes(AuthUtil.getUser().getRoleId(), topMenuId);
return R.data(list);
}
@@ -184,8 +185,8 @@
@GetMapping("/routes-ext")
@ApiOperationSupport(order = 9)
@ApiOperation(value = "前端菜单数据", notes = "前端菜单数据")
- public R<List<MenuVO>> routesExt(BladeUser user, Long topMenuId) {
- List<MenuVO> list = menuService.routesExt(user.getRoleId(), topMenuId);
+ public R<List<MenuVO>> routesExt(Long topMenuId) {
+ List<MenuVO> list = menuService.routesExt(AuthUtil.getUser().getRoleId(), topMenuId);
return R.data(list);
}
@@ -195,8 +196,8 @@
@GetMapping("/buttons")
@ApiOperationSupport(order = 10)
@ApiOperation(value = "前端按钮数据", notes = "前端按钮数据")
- public R<List<MenuVO>> buttons(BladeUser user) {
- List<MenuVO> list = menuService.buttons(user.getRoleId());
+ public R<List<MenuVO>> buttons() {
+ List<MenuVO> list = menuService.buttons(AuthUtil.getUser().getRoleId());
return R.data(list);
}
@@ -217,7 +218,8 @@
@GetMapping("/grant-tree")
@ApiOperationSupport(order = 12)
@ApiOperation(value = "权限分配树形结构", notes = "权限分配树形结构")
- public R<GrantTreeVO> grantTree(BladeUser user) {
+ public R<GrantTreeVO> grantTree() {
+ BladeUser user = AuthUtil.getUser();
GrantTreeVO vo = new GrantTreeVO();
vo.setMenu(menuService.grantTree(user));
vo.setDataScope(menuService.grantDataScopeTree(user));
@@ -245,7 +247,8 @@
@GetMapping("/grant-top-tree")
@ApiOperationSupport(order = 14)
@ApiOperation(value = "顶部菜单树形结构", notes = "顶部菜单树形结构")
- public R<GrantTreeVO> grantTopTree(BladeUser user) {
+ public R<GrantTreeVO> grantTopTree() {
+ BladeUser user = AuthUtil.getUser();
GrantTreeVO vo = new GrantTreeVO();
vo.setMenu(menuService.grantTopTree(user));
return R.data(vo);
@@ -269,7 +272,8 @@
@GetMapping("/top-menu")
@ApiOperationSupport(order = 16)
@ApiOperation(value = "顶部菜单数据", notes = "顶部菜单数据")
- public R<List<TopMenu>> topMenu(BladeUser user) {
+ public R<List<TopMenu>> topMenu() {
+ BladeUser user = AuthUtil.getUser();
if (Func.isEmpty(user)) {
return null;
}
@@ -283,7 +287,8 @@
@GetMapping("auth-routes")
@ApiOperationSupport(order = 17)
@ApiOperation(value = "菜单的角色权限")
- public R<List<Kv>> authRoutes(BladeUser user) {
+ public R<List<Kv>> authRoutes() {
+ BladeUser user = AuthUtil.getUser();
if (Func.isEmpty(user)) {
return null;
}
diff --git a/src/main/java/org/springblade/modules/system/controller/TenantController.java b/src/main/java/org/springblade/modules/system/controller/TenantController.java
index db652f9..1b0d10b 100644
--- a/src/main/java/org/springblade/modules/system/controller/TenantController.java
+++ b/src/main/java/org/springblade/modules/system/controller/TenantController.java
@@ -20,6 +20,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.qiniu.util.Auth;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
@@ -29,6 +30,7 @@
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
@@ -99,9 +101,12 @@
@ApiOperationSupport(order = 3)
@ApiOperation(value = "下拉数据源", notes = "传入tenant")
//@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
- public R<List<Tenant>> select(Tenant tenant, BladeUser bladeUser) {
+ public R<List<Tenant>> select() {
+ BladeUser user = AuthUtil.getUser();
+ Tenant tenant = new Tenant();
+ tenant.setTenantId(AuthUtil.getTenantId());
QueryWrapper<Tenant> queryWrapper = Condition.getQueryWrapper(tenant);
- List<Tenant> list = tenantService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+ List<Tenant> list = tenantService.list((!user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, user.getTenantId()) : queryWrapper);
return R.data(list);
}
diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java
index 29d9ce7..86855ce 100644
--- a/src/main/java/org/springblade/modules/system/controller/UserController.java
+++ b/src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -199,11 +199,8 @@
})
@ApiOperationSupport(order = 3)
@ApiOperation(value = "列表", notes = "传入account和realName")
- //@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
- public R<IPage<UserVO>> page(@ApiIgnore User user, Query query, Long deptId, BladeUser bladeUser) {
- System.out.println("在线更新代码.... ");
- IPage<UserVO> pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId()));
- System.out.println("=================在线更新代码==================");
+ public R<IPage<UserVO>> page(@ApiIgnore User user, Query query, Long deptId) {
+ IPage<UserVO> pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (AuthUtil.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : AuthUtil.getTenantId()));
return R.data(pages);
}
diff --git a/src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml b/src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml
index 931d402..723bf61 100644
--- a/src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml
@@ -97,12 +97,17 @@
SELECT * FROM
(
SELECT t1.*,IF( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild FROM
- ( SELECT id, parent_id,role_name FROM blade_role t where is_deleted =0 ORDER BY parent_id, id ) t1,
+ ( SELECT id, parent_id,role_name,role_alias FROM blade_role t where is_deleted =0 ORDER BY parent_id, id ) t1,
( SELECT @pids := #{roleParam.roleId} ) t2
) t3
- WHERE
- ischild != 0
- ) on br.id = t3.id
+ WHERE id != 1123598816738675201 and id != #{roleParam.roleId}
+ <if test="roleParam.roleName!=null and roleParam.roleName!=''">
+ and role_name like concat('%',#{roleParam.roleName},'%')
+ </if>
+ <if test="roleParam.roleAlias!=null and roleParam.roleAlias!=''">
+ and role_alias like concat('%',#{roleParam.roleAlias},'%')
+ </if>
+ ) t4 on br.id = t4.id
<if test="roleParam.isNowLevel==0">
union all
(
diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
index 4ee38f8..80dfff4 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -344,21 +344,13 @@
</if>
</select>
+ <!--用户列表信息-->
<select id="selectUserPage" resultMap="userResultMap">
select bu.* from blade_user bu
- left join
- blade_dept bd
- on
- bd.id = bu.dept_id
- left join
- sys_jurisdiction sj
- on
- sj.id = bu.jurisdiction
- left join
- blade_role br
- on
- br.id = bu.role_id
- where bu.is_deleted = 0
+ left join blade_dept bd on bd.id = bu.dept_id
+ left join sys_jurisdiction sj on sj.id = bu.jurisdiction
+ left join blade_role br on br.id = bu.role_id
+ where bu.is_deleted = 0 and bu.id != 1123598821738675201
<if test="user.tenantId!=null and user.tenantId != ''">
and tenant_id = #{user.tenantId}
</if>
diff --git a/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
index ef42e94..ddbcbae 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
@@ -24,6 +24,7 @@
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.constant.RoleConstant;
import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
@@ -154,7 +155,7 @@
@Override
public List<MenuVO> grantTree(BladeUser user) {
- return ForestNodeMerger.merge(user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId())));
+ return ForestNodeMerger.merge(AuthUtil.getUser().getRoleName().equals(RoleConstant.ADMINISTRATOR) ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId())));
}
@Override
diff --git a/src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java
index c0ac7bd..765ce66 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java
@@ -198,6 +198,7 @@
}
role.setTenantId(parent.getTenantId());
}
+ role.setParentId(Long.parseLong(AuthUtil.getUser().getRoleId()));
role.setIsDeleted(BladeConstant.DB_NOT_DELETED);
return saveOrUpdate(role);
}
diff --git a/src/main/java/org/springblade/modules/system/vo/RoleParam.java b/src/main/java/org/springblade/modules/system/vo/RoleParam.java
index 6ce56e5..a39ca1a 100644
--- a/src/main/java/org/springblade/modules/system/vo/RoleParam.java
+++ b/src/main/java/org/springblade/modules/system/vo/RoleParam.java
@@ -50,4 +50,14 @@
* 角色id
*/
private String roleId;
+
+ /**
+ * 角色名称
+ */
+ private String roleName;
+
+ /**
+ * 角色别名
+ */
+ private String roleAlias;
}
--
Gitblit v1.9.3