Ver código fonte

Update 优化内置角色不能编辑,只能超级管理员编辑

Yue 3 dias atrás
pai
commit
3ba5ed4a39

+ 11 - 2
SERVER/VberAdminPlusV3/vber-modules/vber-system/src/main/java/com/vber/system/controller/system/SysRoleController.java

@@ -9,6 +9,7 @@ import com.vber.common.log.annotation.Log;
 import com.vber.common.log.enums.BusinessType;
 import com.vber.common.mybatis.core.page.PageQuery;
 import com.vber.common.mybatis.core.page.TableDataInfo;
+import com.vber.common.satoken.utils.LoginHelper;
 import com.vber.common.web.core.BaseController;
 import com.vber.system.domain.SysUserRole;
 import com.vber.system.domain.bo.SysOrgBo;
@@ -116,7 +117,9 @@ public class SysRoleController extends BaseController {
         }
 
         if (roleService.updateRole(role) > 0) {
-            roleService.cleanOnlineUserByRole(role.getRoleId());
+            if (!LoginHelper.isSuperAdmin()) {
+                roleService.cleanOnlineUserByRole(role.getRoleId());
+            }
             return R.ok();
         }
         return R.fail("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
@@ -132,7 +135,13 @@ public class SysRoleController extends BaseController {
     public R<Void> dataScope(@RequestBody SysRoleBo role) {
         roleService.checkRoleAllowed(role);
         roleService.checkRoleDataScope(role.getRoleId());
-        return toAjax(roleService.authDataScope(role));
+        if (roleService.authDataScope(role) > 0) {
+            if (!LoginHelper.isSuperAdmin()) {
+                roleService.cleanOnlineUserByRole(role.getRoleId());
+            }
+            return R.ok();
+        }
+        return R.fail("修改角色'" + role.getRoleName() + "'数据权限失败,请联系管理员");
     }
 
     /**

+ 3 - 0
SERVER/VberAdminPlusV3/vber-modules/vber-system/src/main/java/com/vber/system/service/impl/SysRoleServiceImpl.java

@@ -235,6 +235,9 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
         // 修改不允许修改 管理员标识符
         if (ObjectUtil.isNotNull(role.getRoleId())) {
             SysRole sysRole = baseMapper.selectById(role.getRoleId());
+            if (sysRole.getIsStatic() && !LoginHelper.isSuperAdmin()) {
+                throw new ServiceException("不允许修改系统内置角色!");
+            }
             // 如果标识符不相等 判断为修改了管理员标识符
             if (!StringUtils.equals(sysRole.getRoleKey(), role.getRoleKey())) {
                 if (StringUtils.equalsAny(sysRole.getRoleKey(), keys)) {

+ 1 - 1
UI/VAP_V3.VUE/src/components/form/VbForm.vue

@@ -21,7 +21,7 @@ const props = withDefaults(
 		labelWidth: "70px",
 		class: "vb-form",
 		gutter: 10,
-		span: 5,
+		span: 24,
 		size: "large"
 	}
 )