From 26842fe0402b8e6b5a701eab5c5148899ca40600 Mon Sep 17 00:00:00 2001 From: bjkim Date: Mon, 22 Sep 2025 13:55:48 +0900 Subject: [PATCH] =?UTF-8?q?[ADD]=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EC=A1=B0=ED=9A=8C=20API=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20(ProjectPermissionController,=20Service)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/ProjectPermissionController.java | 11 +++++++++++ .../autoflow/service/ProjectPermissionService.java | 7 +++++++ 2 files changed, 18 insertions(+) diff --git a/src/main/java/kr/re/etri/autoflow/controllers/ProjectPermissionController.java b/src/main/java/kr/re/etri/autoflow/controllers/ProjectPermissionController.java index d1c379a..3105ee6 100644 --- a/src/main/java/kr/re/etri/autoflow/controllers/ProjectPermissionController.java +++ b/src/main/java/kr/re/etri/autoflow/controllers/ProjectPermissionController.java @@ -5,12 +5,14 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; import kr.re.etri.autoflow.entity.ProjectPermission; +import kr.re.etri.autoflow.entity.UserProjectMapEntity; import kr.re.etri.autoflow.payload.request.UserPermissionRequest; import kr.re.etri.autoflow.service.ProjectPermissionService; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Set; @RestController @@ -33,6 +35,15 @@ public class ProjectPermissionController { return ResponseEntity.ok().build(); } + @Operation(summary = "사용자 프로젝트 조회", description = "특정 사용자가 속한 모든 프로젝트와 권한을 조회합니다.") + @GetMapping("/user/{userId}/projects") + public ResponseEntity> getUserProjects( + @Parameter(description = "유저 ID") @PathVariable Long userId + ) { + List projects = projectPermissionService.getUserProjects(userId); + return ResponseEntity.ok(projects); + } + @Operation(summary = "사용자 권한 조회") @GetMapping("/{projectId}/users/{userId}/permissions") public ResponseEntity> getUserPermissions( diff --git a/src/main/java/kr/re/etri/autoflow/service/ProjectPermissionService.java b/src/main/java/kr/re/etri/autoflow/service/ProjectPermissionService.java index e875762..293dc91 100644 --- a/src/main/java/kr/re/etri/autoflow/service/ProjectPermissionService.java +++ b/src/main/java/kr/re/etri/autoflow/service/ProjectPermissionService.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Collections; +import java.util.List; import java.util.Set; @Service @@ -49,6 +50,12 @@ public class ProjectPermissionService { .orElse(Collections.emptySet()); } + @Transactional(readOnly = true) + public List getUserProjects(Long userId) { + User user = getUser(userId); + return userProjectMapRepository.findAllByUser(user); + } + public void updateUserPermissions(Long projectId, Long userId, Set newPermissions) { ProjectEntity project = getProject(projectId); User user = getUser(userId);