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);