feat(权限): 添加获取用户权限接口用于按钮显示

新增获取用户权限接口,根据用户角色返回对应权限列表,用于前端按钮权限控制。管理员返回所有权限,普通用户返回其拥有的权限。
This commit is contained in:
dzq 2025-06-18 16:57:47 +08:00
parent 07dd290645
commit f2eef230da
2 changed files with 23 additions and 0 deletions

View File

@ -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")

View File

@ -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());
}
}