Bladeren bron

权限控制1

sunyize 2 jaren geleden
bovenliggende
commit
4894251f70
1 gewijzigde bestanden met toevoegingen van 32 en 10 verwijderingen
  1. 32 10
      tnc-system/src/main/java/org/jeecg/modules/system/controller/SysRoleController.java

+ 32 - 10
tnc-system/src/main/java/org/jeecg/modules/system/controller/SysRoleController.java

@@ -157,24 +157,46 @@ public class SysRoleController {
 			//根据 role_id 更新data_rule_ids       sys_role_permission
 			// 根据角色ID 查找角色
 			String join ="";
+			String sysPermission1 = sysPermissionService.queryListByPermissionName(powerCreateBy).get(0).getId();
+			String sysPermission2 = sysPermissionService.queryListByPermissionName(powerOrg).get(0).getId();
+			String sysPermission3 = sysPermissionService.queryListByPermissionName(powerThisOrg).get(0).getId();
+			sysPermissionService.queryListByPermissionName(powerCreateBy);
 			if (StringUtils.isNotBlank(role.getPower())&&role.getPower().equals("1")){
-				List<SysPermission> sysPermissions = sysPermissionService.queryListByPermissionName(powerCreateBy);
-				join = sysPermissions.get(0).getId();
+ 				join = sysPermission1;
 			}
 			if (StringUtils.isNotBlank(role.getPower())&&role.getPower().equals("2")){
-				List<SysPermission> sysPermissions = sysPermissionService.queryListByPermissionName(powerOrg);
-				join =  sysPermissions.get(0).getId();
+				join =  sysPermission2;
 			}
 			if (StringUtils.isNotBlank(role.getPower())&&role.getPower().equals("3")){
-				List<SysPermission> sysPermissions = sysPermissionService.queryListByPermissionName(powerThisOrg);
-				join =  sysPermissions.get(0).getId();
+				join = sysPermission3;
 			}
 			if (StringUtils.isNotBlank(join)){
-				UpdateWrapper<SysRolePermission> updateWrapper = new UpdateWrapper<>();
-				updateWrapper.eq("role_id",role.getId()).set("data_rule_ids",join);
-				sysRolePermissionService.update(updateWrapper);
+				//查出原有的
+				LambdaQueryWrapper<SysRolePermission> query = new LambdaQueryWrapper<SysRolePermission>();
+				query.eq(SysRolePermission::getRoleId, role.getId());
+				List<SysRolePermission> list = sysRolePermissionService.list(query);
+				for (SysRolePermission sysRolePermission : list) {
+					if (StringUtils.isNotBlank(sysRolePermission.getDataRuleIds())){
+						String replace = sysRolePermission.getDataRuleIds()
+								.replace(sysPermission1, join)
+								.replace(sysPermission2, join)
+								.replace(sysPermission2, join);
+						UpdateWrapper<SysRolePermission> updateWrapper = new UpdateWrapper<>();
+						updateWrapper
+								.eq("role_id",role.getId())
+								.eq("permission_id",sysRolePermission.getPermissionId())
+								.set("data_rule_ids",replace);
+						sysRolePermissionService.update(updateWrapper);
+					}else {
+						UpdateWrapper<SysRolePermission> updateWrapper = new UpdateWrapper<>();
+						updateWrapper
+								.eq("role_id",role.getId())
+								.eq("permission_id",sysRolePermission.getPermissionId())
+								.set("data_rule_ids",join);
+						sysRolePermissionService.update(updateWrapper);
+					}
+				}
 			}
-
 			//TODO 返回false说明什么?
 			if(ok) {
 				result.success("修改成功!");