From f2eef230da16cb90658a24394a8ba4f95d09511c Mon Sep 17 00:00:00 2001 From: dzq Date: Wed, 18 Jun 2025 16:57:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=9D=83=E9=99=90):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7=E6=9D=83=E9=99=90=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=94=A8=E4=BA=8E=E6=8C=89=E9=92=AE=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增获取用户权限接口,根据用户角色返回对应权限列表,用于前端按钮权限控制。管理员返回所有权限,普通用户返回其拥有的权限。 --- .../admin/controller/common/LoginController.java | 8 ++++++++ .../system/menu/MenuApplicationService.java | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/agileboot-admin/src/main/java/com/agileboot/admin/controller/common/LoginController.java b/agileboot-admin/src/main/java/com/agileboot/admin/controller/common/LoginController.java index 9d22af8..35cf5f5 100644 --- a/agileboot-admin/src/main/java/com/agileboot/admin/controller/common/LoginController.java +++ b/agileboot-admin/src/main/java/com/agileboot/admin/controller/common/LoginController.java @@ -159,6 +159,14 @@ public class LoginController { return ResponseDTO.ok(routerTree); } + @Operation(summary = "获取用户对应的全部权限", description = "用于显示按钮") + @GetMapping("/getPermissions") + public ResponseDTO> getPermissions() { + SystemLoginUser loginUser = AuthenticationUtils.getSystemLoginUser(); + List permissions = menuApplicationService.getPermissions(loginUser); + return ResponseDTO.ok(permissions); + } + @Operation(summary = "注册接口", description = "暂未实现") @PostMapping("/register") diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/system/menu/MenuApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/system/menu/MenuApplicationService.java index 5ff7175..6fbfa8d 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/system/menu/MenuApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/system/menu/MenuApplicationService.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; /** @@ -176,4 +177,18 @@ public class MenuApplicationService { return buildRouterTree(trees); } + public List getPermissions(SystemLoginUser loginUser) { + List allMenus; + if (loginUser.isAdmin()) { + allMenus = menuService.list(); + } else { + allMenus = menuService.getMenuListByUserId(loginUser.getUserId()); + } + + return allMenus.stream() + .filter(menu-> StatusEnum.ENABLE.getValue().equals(menu.getStatus())) + .map(SysMenuEntity::getPermission) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toList()); + } }