Browse Source

fix: 解决系统管理员角色在菜单管理和租户管理功能权限的缺失问题

lihao16 4 months ago
parent
commit
c17b577865

+ 5 - 0
smsb-common/smsb-common-core/src/main/java/org/dromara/common/core/constant/TenantConstants.java

@@ -32,6 +32,11 @@ public interface TenantConstants {
      */
     String TENANT_ADMIN_ROLE_KEY = "admin";
 
+    /**
+     * 系统管理员 roleKey
+     */
+    String MANAGER_ROLE_KEY = "manager";
+
     /**
      * 租户管理员角色名称
      */

+ 20 - 6
smsb-modules/smsb-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java

@@ -53,7 +53,8 @@ public class SysMenuController extends BaseController {
      */
     @SaCheckRole(value = {
             TenantConstants.SUPER_ADMIN_ROLE_KEY,
-            TenantConstants.TENANT_ADMIN_ROLE_KEY
+            TenantConstants.TENANT_ADMIN_ROLE_KEY,
+            TenantConstants.MANAGER_ROLE_KEY
     }, mode = SaMode.OR)
     @SaCheckPermission("system:menu:list")
     @GetMapping("/list")
@@ -69,7 +70,8 @@ public class SysMenuController extends BaseController {
      */
     @SaCheckRole(value = {
             TenantConstants.SUPER_ADMIN_ROLE_KEY,
-            TenantConstants.TENANT_ADMIN_ROLE_KEY
+            TenantConstants.TENANT_ADMIN_ROLE_KEY,
+            TenantConstants.MANAGER_ROLE_KEY
     }, mode = SaMode.OR)
     @SaCheckPermission("system:menu:query")
     @GetMapping(value = "/{menuId}")
@@ -107,7 +109,10 @@ public class SysMenuController extends BaseController {
      *
      * @param packageId 租户套餐ID
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:menu:query")
     @GetMapping(value = "/tenantPackageMenuTreeselect/{packageId}")
     public R<MenuTreeSelectVo> tenantPackageMenuTreeselect(@PathVariable("packageId") Long packageId) {
@@ -121,7 +126,10 @@ public class SysMenuController extends BaseController {
     /**
      * 新增菜单
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:menu:add")
     @Log(title = "菜单管理", businessType = BusinessType.INSERT)
     @PostMapping
@@ -137,7 +145,10 @@ public class SysMenuController extends BaseController {
     /**
      * 修改菜单
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:menu:edit")
     @Log(title = "菜单管理", businessType = BusinessType.UPDATE)
     @PutMapping
@@ -157,7 +168,10 @@ public class SysMenuController extends BaseController {
      *
      * @param menuId 菜单ID
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:menu:remove")
     @Log(title = "菜单管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{menuId}")

+ 45 - 11
smsb-modules/smsb-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java

@@ -2,6 +2,7 @@ package org.dromara.system.controller.system;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.annotation.SaCheckRole;
+import cn.dev33.satoken.annotation.SaMode;
 import com.baomidou.lock.annotation.Lock4j;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotBlank;
@@ -47,7 +48,10 @@ public class SysTenantController extends BaseController {
     /**
      * 查询租户列表
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenant:list")
     @GetMapping("/list")
     public TableDataInfo<SysTenantVo> list(SysTenantBo bo, PageQuery pageQuery) {
@@ -57,7 +61,10 @@ public class SysTenantController extends BaseController {
     /**
      * 导出租户列表
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenant:export")
     @Log(title = "租户", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
@@ -71,7 +78,10 @@ public class SysTenantController extends BaseController {
      *
      * @param id 主键
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenant:query")
     @GetMapping("/{id}")
     public R<SysTenantVo> getInfo(@NotNull(message = "主键不能为空")
@@ -83,7 +93,10 @@ public class SysTenantController extends BaseController {
      * 新增租户
      */
     @ApiEncrypt
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenant:add")
     @Log(title = "租户", businessType = BusinessType.INSERT)
     @Lock4j
@@ -99,7 +112,10 @@ public class SysTenantController extends BaseController {
     /**
      * 修改租户
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenant:edit")
     @Log(title = "租户", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
@@ -115,7 +131,10 @@ public class SysTenantController extends BaseController {
     /**
      * 状态修改
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenant:edit")
     @Log(title = "租户", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
@@ -129,7 +148,10 @@ public class SysTenantController extends BaseController {
      *
      * @param ids 主键串
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenant:remove")
     @Log(title = "租户", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
@@ -143,7 +165,10 @@ public class SysTenantController extends BaseController {
      *
      * @param tenantId 租户ID
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @GetMapping("/dynamic/{tenantId}")
     public R<Void> dynamicTenant(@NotBlank(message = "租户ID不能为空") @PathVariable String tenantId) {
         TenantHelper.setDynamic(tenantId, true);
@@ -153,7 +178,10 @@ public class SysTenantController extends BaseController {
     /**
      * 清除动态租户
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @GetMapping("/dynamic/clear")
     public R<Void> dynamicClear() {
         TenantHelper.clearDynamic();
@@ -167,7 +195,10 @@ public class SysTenantController extends BaseController {
      * @param tenantId  租户id
      * @param packageId 套餐id
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenant:edit")
     @Log(title = "租户", businessType = BusinessType.UPDATE)
     @GetMapping("/syncTenantPackage")
@@ -179,7 +210,10 @@ public class SysTenantController extends BaseController {
     /**
      * 同步租户字典
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @Log(title = "同步租户字典", businessType = BusinessType.INSERT)
     @GetMapping("/syncTenantDict")
     public R<Void> syncTenantDict() {

+ 33 - 8
smsb-modules/smsb-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java

@@ -2,6 +2,7 @@ package org.dromara.system.controller.system;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.annotation.SaCheckRole;
+import cn.dev33.satoken.annotation.SaMode;
 import org.dromara.common.core.constant.TenantConstants;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.validate.AddGroup;
@@ -43,7 +44,10 @@ public class SysTenantPackageController extends BaseController {
     /**
      * 查询租户套餐列表
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenantPackage:list")
     @GetMapping("/list")
     public TableDataInfo<SysTenantPackageVo> list(SysTenantPackageBo bo, PageQuery pageQuery) {
@@ -53,7 +57,10 @@ public class SysTenantPackageController extends BaseController {
     /**
      * 查询租户套餐下拉选列表
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenantPackage:list")
     @GetMapping("/selectList")
     public R<List<SysTenantPackageVo>> selectList() {
@@ -63,7 +70,10 @@ public class SysTenantPackageController extends BaseController {
     /**
      * 导出租户套餐列表
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenantPackage:export")
     @Log(title = "租户套餐", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
@@ -77,7 +87,10 @@ public class SysTenantPackageController extends BaseController {
      *
      * @param packageId 主键
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenantPackage:query")
     @GetMapping("/{packageId}")
     public R<SysTenantPackageVo> getInfo(@NotNull(message = "主键不能为空")
@@ -88,7 +101,10 @@ public class SysTenantPackageController extends BaseController {
     /**
      * 新增租户套餐
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenantPackage:add")
     @Log(title = "租户套餐", businessType = BusinessType.INSERT)
     @RepeatSubmit()
@@ -103,7 +119,10 @@ public class SysTenantPackageController extends BaseController {
     /**
      * 修改租户套餐
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenantPackage:edit")
     @Log(title = "租户套餐", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
@@ -118,7 +137,10 @@ public class SysTenantPackageController extends BaseController {
     /**
      * 状态修改
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenantPackage:edit")
     @Log(title = "租户套餐", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
@@ -131,7 +153,10 @@ public class SysTenantPackageController extends BaseController {
      *
      * @param packageIds 主键串
      */
-    @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
+    @SaCheckRole(value = {
+        TenantConstants.SUPER_ADMIN_ROLE_KEY,
+        TenantConstants.MANAGER_ROLE_KEY
+    }, mode = SaMode.OR)
     @SaCheckPermission("system:tenantPackage:remove")
     @Log(title = "租户套餐", businessType = BusinessType.DELETE)
     @DeleteMapping("/{packageIds}")