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<List<String>> getPermissions() { + SystemLoginUser loginUser = AuthenticationUtils.getSystemLoginUser(); + List<String> 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<String> getPermissions(SystemLoginUser loginUser) { + List<SysMenuEntity> 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()); + } }