From 303b0c879ab0f33f0f8d8744d7ec2c4b358ac552 Mon Sep 17 00:00:00 2001 From: ruanqi Date: Tue, 21 Jan 2025 16:46:36 +0800 Subject: [PATCH] 111 --- .../spring/modules/sys/controller/SysMenuController.java | 8 ++++++-- .../spring/modules/sys/controller/SysRoleController.java | 7 ++++++- .../spring/modules/sys/controller/SysUserController.java | 7 +++++-- .../modules/sys/service/impl/SysRoleServiceImpl.java | 8 ++++++-- .../modules/sys/service/impl/SysUserServiceImpl.java | 6 +++++- src/main/resources/mapper/sys/SysMenuDao.xml | 2 +- 6 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/spring/modules/sys/controller/SysMenuController.java b/src/main/java/com/spring/modules/sys/controller/SysMenuController.java index 0abd1843..53a56a3c 100644 --- a/src/main/java/com/spring/modules/sys/controller/SysMenuController.java +++ b/src/main/java/com/spring/modules/sys/controller/SysMenuController.java @@ -7,14 +7,17 @@ import com.spring.common.constant.SysMsgConstant; import com.spring.common.exception.XJException; import com.spring.common.utils.Constant; import com.spring.common.utils.R; +import com.spring.modules.sys.dao.SysMenuDao; import com.spring.modules.sys.entity.SysMenuEntity; import com.spring.modules.sys.entity.SysObjectLanguageMenu; +import com.spring.modules.sys.entity.SysUserEntity; import com.spring.modules.sys.entity.dto.SysMenuEntityDto; import com.spring.modules.sys.service.ShiroService; import com.spring.modules.sys.service.SysMenuService; import com.spring.modules.sys.service.SysObjectLanguageMenuService; import com.spring.modules.sys.service.SysRoleMenuService; import org.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -39,7 +42,8 @@ public class SysMenuController extends AbstractController { private ShiroService shiroService; @Autowired private SysObjectLanguageMenuService sysObjectLanguageMenuService; - + @Autowired + private SysMenuDao sysMenuDao; /** * 导航菜单 */ @@ -60,7 +64,7 @@ public class SysMenuController extends AbstractController { //sysMenuService.lambdaQuery().orderBy(true,true,SysMenuEntity::getOrderNum).list(); List menuList = null; //判断是否是admin - if (getUserId() == Constant.SUPER_ADMIN) { + if (getUserId() == Constant.SUPER_ADMIN||sysMenuDao.checkSuperAdmin(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId()).size()>0) { menuList = sysMenuService.list(); }else { //查询当前用户的权限 diff --git a/src/main/java/com/spring/modules/sys/controller/SysRoleController.java b/src/main/java/com/spring/modules/sys/controller/SysRoleController.java index f56a0ac8..8351c394 100644 --- a/src/main/java/com/spring/modules/sys/controller/SysRoleController.java +++ b/src/main/java/com/spring/modules/sys/controller/SysRoleController.java @@ -8,9 +8,12 @@ import com.spring.common.utils.Constant; import com.spring.common.utils.PageUtils; import com.spring.common.utils.R; import com.spring.common.validator.ValidatorUtils; +import com.spring.modules.sys.dao.SysMenuDao; import com.spring.modules.sys.entity.SysRoleEntity; +import com.spring.modules.sys.entity.SysUserEntity; import com.spring.modules.sys.service.SysRoleMenuService; import com.spring.modules.sys.service.SysRoleService; +import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -32,6 +35,8 @@ public class SysRoleController extends AbstractController { @Autowired private SysRoleMenuService sysRoleMenuService; + @Autowired + private SysMenuDao sysMenuDao; /** * 角色列表 */ @@ -39,7 +44,7 @@ public class SysRoleController extends AbstractController { @RequiresPermissions("sys:role:list") public R list(@RequestParam Map params){ //如果不是超级管理员,则只查询自己创建的角色列表 - if(getUserId() != Constant.SUPER_ADMIN){ + if(getUserId() != Constant.SUPER_ADMIN&&sysMenuDao.checkSuperAdmin(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId()).size()==0){ params.put("createUserId", getUserId()); } diff --git a/src/main/java/com/spring/modules/sys/controller/SysUserController.java b/src/main/java/com/spring/modules/sys/controller/SysUserController.java index d72dd1f3..a17641c5 100644 --- a/src/main/java/com/spring/modules/sys/controller/SysUserController.java +++ b/src/main/java/com/spring/modules/sys/controller/SysUserController.java @@ -12,6 +12,7 @@ import com.spring.common.validator.ValidatorUtils; import com.spring.common.validator.group.AddGroup; import com.spring.common.validator.group.UpdateGroup; import com.spring.modules.base.data.SysUserEntityData; +import com.spring.modules.sys.dao.SysMenuDao; import com.spring.modules.sys.entity.SysUserEntity; import com.spring.modules.sys.entity.UserJobEntity; import com.spring.modules.sys.form.IfsPassWordForm; @@ -19,6 +20,7 @@ import com.spring.modules.sys.form.PasswordForm; import com.spring.modules.sys.service.SysUserRoleService; import com.spring.modules.sys.service.SysUserService; import org.apache.commons.lang.ArrayUtils; +import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.crypto.hash.Sha256Hash; import org.springframework.beans.factory.annotation.Autowired; @@ -40,7 +42,8 @@ public class SysUserController extends AbstractController { @Autowired private SysUserRoleService sysUserRoleService; - + @Autowired + private SysMenuDao sysMenuDao; /** * 所有用户列表 */ @@ -49,7 +52,7 @@ public class SysUserController extends AbstractController { @ResponseBody public R list( SysUserEntityData params){ //只有超级管理员,才能查看所有管理员列表 - if(getUserId() != Constant.SUPER_ADMIN){ + if(getUserId() != Constant.SUPER_ADMIN&&sysMenuDao.checkSuperAdmin(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId()).size()==0){ params.setCreateUserId(getUserId()); } PageUtils page = sysUserService.queryPage(params); diff --git a/src/main/java/com/spring/modules/sys/service/impl/SysRoleServiceImpl.java b/src/main/java/com/spring/modules/sys/service/impl/SysRoleServiceImpl.java index 684c9905..82d7fb5f 100644 --- a/src/main/java/com/spring/modules/sys/service/impl/SysRoleServiceImpl.java +++ b/src/main/java/com/spring/modules/sys/service/impl/SysRoleServiceImpl.java @@ -10,11 +10,14 @@ import com.spring.common.exception.XJException; import com.spring.common.utils.Constant; import com.spring.common.utils.PageUtils; import com.spring.common.utils.Query; +import com.spring.modules.sys.dao.SysMenuDao; import com.spring.modules.sys.dao.SysRoleDao; import com.spring.modules.sys.entity.SysRoleEntity; +import com.spring.modules.sys.entity.SysUserEntity; import com.spring.modules.sys.service.*; import com.spring.modules.sys.service.*; import org.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -40,7 +43,8 @@ public class SysRoleServiceImpl extends ServiceImpl i @Autowired private SysMsgService sysMsgService; - + @Autowired + private SysMenuDao sysMenuDao; @Override public PageUtils queryPage(Map params) { String roleName = (String)params.get("roleName"); @@ -105,7 +109,7 @@ public class SysRoleServiceImpl extends ServiceImpl i */ private void checkPrems(SysRoleEntity role){ //如果不是超级管理员,则需要判断角色的权限是否超过自己的权限 - if(role.getCreateUserId() == Constant.SUPER_ADMIN){ + if(role.getCreateUserId() == Constant.SUPER_ADMIN||sysMenuDao.checkSuperAdmin(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId()).size()>0){ return ; } diff --git a/src/main/java/com/spring/modules/sys/service/impl/SysUserServiceImpl.java b/src/main/java/com/spring/modules/sys/service/impl/SysUserServiceImpl.java index 77f18971..a43ff440 100644 --- a/src/main/java/com/spring/modules/sys/service/impl/SysUserServiceImpl.java +++ b/src/main/java/com/spring/modules/sys/service/impl/SysUserServiceImpl.java @@ -18,11 +18,13 @@ import com.spring.modules.base.entity.PlmFieldFunctionList; import com.spring.modules.base.service.BaseService; import com.spring.modules.factory.dao.AccessSiteMapper; import com.spring.modules.project.data.PlmProjectInfoData; +import com.spring.modules.sys.dao.SysMenuDao; import com.spring.modules.sys.service.*; import com.spring.modules.sys.dao.SysUserDao; import com.spring.modules.sys.entity.SysUserEntity; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; import org.apache.shiro.crypto.hash.Sha256Hash; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -48,6 +50,8 @@ public class SysUserServiceImpl extends ServiceImpl i @Autowired private AccessSiteMapper accessSiteMapper; + @Autowired + private SysMenuDao sysMenuDao; @Autowired private UserJobService userJobService; @Autowired @@ -193,7 +197,7 @@ public class SysUserServiceImpl extends ServiceImpl i return; } //如果不是超级管理员,则需要判断用户的角色是否自己创建 - if(user.getCreateUserId() == Constant.SUPER_ADMIN){ + if(user.getCreateUserId() == Constant.SUPER_ADMIN || sysMenuDao.checkSuperAdmin(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId()).size()>0){ return ; } diff --git a/src/main/resources/mapper/sys/SysMenuDao.xml b/src/main/resources/mapper/sys/SysMenuDao.xml index 5428c4c6..99f227ec 100644 --- a/src/main/resources/mapper/sys/SysMenuDao.xml +++ b/src/main/resources/mapper/sys/SysMenuDao.xml @@ -103,7 +103,7 @@ \ No newline at end of file