修复流水明细导出权限校验

This commit is contained in:
wjj
2026-07-20 11:26:58 +08:00
parent 657977dfb7
commit 1561df924f
3 changed files with 31 additions and 2 deletions

View File

@@ -18,7 +18,6 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
@@ -87,7 +86,6 @@ public class CcdiBankStatementController extends BaseController {
*/
@PostMapping("/export")
@Operation(summary = "导出流水明细")
@PreAuthorize("@ss.hasPermi('ccdi:project:export')")
public void export(HttpServletResponse response, CcdiBankStatementQueryDTO queryDTO) {
projectAccessService.assertCanRead(queryDTO.getProjectId());
List<CcdiBankStatementExcel> list = bankStatementService.selectStatementListForExport(queryDTO);

View File

@@ -0,0 +1,15 @@
# 流水明细导出项目可读权限后端实施计划
## 目标
普通用户进入本人可读项目后,可以导出该项目的流水明细;不可读项目仍禁止导出。
## 实施范围
1. 调整 `CcdiBankStatementController.export`,移除 `ccdi:project:export` 菜单权限前置校验。
2. 保留并依赖 `projectAccessService.assertCanRead(projectId)`,导出权限与流水列表、筛选项、详情的项目可读口径保持一致。
3. 不调整项目列表导出、结果总览导出、专项核查导出等其他链路;本次仅修正流水明细导出遗留的旧权限标识。
## 验证
执行 `mvn -pl ccdi-project -am -Dtest=CcdiBankStatementControllerTest -Dsurefire.failIfNoSpecifiedTests=false test`,确认流水明细 Controller 单测通过。

View File

@@ -0,0 +1,16 @@
# 流水明细导出项目可读权限实施记录
## 修改内容
- 移除流水明细导出接口上的 `ccdi:project:export` 菜单权限前置校验。
- 导出接口继续执行 `projectAccessService.assertCanRead(projectId)`,普通用户仅能导出自己可读项目的流水明细。
## 影响范围
- 影响接口:`POST /ccdi/project/bank-statement/export`
- 流水列表、筛选项、详情接口权限口径不变。
- 已复核项目详情内其他导出入口,当前没有使用 `ccdi:project:export`;结果总览与专项核查导出仍按 `ccdi:project:query` 加项目可读校验执行。
## 验证记录
- 通过:`mvn -pl ccdi-project -am -Dtest=CcdiBankStatementControllerTest "-Dsurefire.failIfNoSpecifiedTests=false" test`