修复系统管理后台权限配置校验
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package cn.nianxx.thhotel.platform.access.service.impl;
|
||||
|
||||
import cn.nianxx.thhotel.platform.access.common.enums.PlatformPermissionStatus;
|
||||
import cn.nianxx.thhotel.platform.access.common.enums.PlatformRoleStatus;
|
||||
import cn.nianxx.thhotel.platform.access.common.request.AdminRoleCreateRequest;
|
||||
import cn.nianxx.thhotel.platform.access.common.request.AdminRolePermissionAssignmentRequest;
|
||||
@@ -315,12 +316,13 @@ public class AdminAccessManagementServiceImpl implements AdminAccessManagementSe
|
||||
if (permissionIds == null || permissionIds.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
Set<Long> existingPermissionIds = accessRepository.listAllPermissions().stream()
|
||||
Set<Long> activePermissionIds = accessRepository.listAllPermissions().stream()
|
||||
.filter(permission -> PlatformPermissionStatus.ACTIVE.name().equals(permission.getPermissionStatus()))
|
||||
.map(PlatformPermissionEntity::getId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toSet());
|
||||
if (!existingPermissionIds.containsAll(permissionIds)) {
|
||||
throw invalidRequest("存在不存在的权限 ID。");
|
||||
if (!activePermissionIds.containsAll(permissionIds)) {
|
||||
throw invalidRequest("存在不存在或未启用的权限 ID。");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package cn.nianxx.thhotel.platform.identity.service.impl;
|
||||
|
||||
import cn.nianxx.thhotel.platform.access.common.enums.PlatformRoleStatus;
|
||||
import cn.nianxx.thhotel.platform.access.domain.PlatformRoleEntity;
|
||||
import cn.nianxx.thhotel.platform.access.domain.PlatformUserRoleEntity;
|
||||
import cn.nianxx.thhotel.platform.access.repository.PlatformAccessRepository;
|
||||
@@ -479,11 +480,12 @@ public class AdminUserManagementServiceImpl implements AdminUserManagementServic
|
||||
if (roleIds == null || roleIds.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
Set<Long> existingRoleIds = accessRepository.listRolesByIds(roleIds).stream()
|
||||
Set<Long> activeRoleIds = accessRepository.listRolesByIds(roleIds).stream()
|
||||
.filter(role -> PlatformRoleStatus.ACTIVE.name().equals(role.getRoleStatus()))
|
||||
.map(PlatformRoleEntity::getId)
|
||||
.collect(Collectors.toSet());
|
||||
if (!existingRoleIds.containsAll(roleIds)) {
|
||||
throw invalidRequest("存在不存在的角色 ID。");
|
||||
if (!activeRoleIds.containsAll(roleIds)) {
|
||||
throw invalidRequest("存在不存在或未启用的角色 ID。");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package cn.nianxx.thhotel.platform.navigation.service.impl;
|
||||
|
||||
import cn.nianxx.thhotel.platform.access.common.enums.PlatformPermissionStatus;
|
||||
import cn.nianxx.thhotel.platform.access.repository.PlatformAccessRepository;
|
||||
import cn.nianxx.thhotel.platform.audit.common.dto.PlatformAdminAuditLogDraft;
|
||||
import cn.nianxx.thhotel.platform.audit.service.PlatformAdminAuditLogService;
|
||||
@@ -44,7 +45,8 @@ public class AdminMenuManagementServiceImpl implements AdminMenuManagementServic
|
||||
"/system/users",
|
||||
"/system/roles",
|
||||
"/system/menus",
|
||||
"/system/hotels");
|
||||
"/system/hotels",
|
||||
"/system/audits");
|
||||
|
||||
private final PlatformNavigationRepository navigationRepository;
|
||||
private final PlatformAccessRepository accessRepository;
|
||||
@@ -231,8 +233,10 @@ public class AdminMenuManagementServiceImpl implements AdminMenuManagementServic
|
||||
menu.setIconKey(trimToNull(iconKey));
|
||||
String normalizedPermissionCode = trimToNull(permissionCode);
|
||||
if (normalizedPermissionCode != null
|
||||
&& accessRepository.findPermissionByCode(normalizedPermissionCode).isEmpty()) {
|
||||
throw invalidRequest("菜单绑定的权限码不存在。");
|
||||
&& accessRepository.findPermissionByCode(normalizedPermissionCode)
|
||||
.filter(permission -> PlatformPermissionStatus.ACTIVE.name().equals(permission.getPermissionStatus()))
|
||||
.isEmpty()) {
|
||||
throw invalidRequest("菜单绑定的权限码不存在或未启用。");
|
||||
}
|
||||
menu.setPermissionCode(normalizedPermissionCode);
|
||||
menu.setSortOrder(sortOrder == null ? 0 : sortOrder);
|
||||
|
||||
Reference in New Issue
Block a user