diff --git a/src/main/java/inha/gdgoc/domain/admin/recruit/core/controller/RecruitCoreAdminController.java b/src/main/java/inha/gdgoc/domain/admin/recruit/core/controller/RecruitCoreAdminController.java index 0a129b8..b1e4657 100644 --- a/src/main/java/inha/gdgoc/domain/admin/recruit/core/controller/RecruitCoreAdminController.java +++ b/src/main/java/inha/gdgoc/domain/admin/recruit/core/controller/RecruitCoreAdminController.java @@ -6,6 +6,7 @@ import inha.gdgoc.domain.admin.recruit.core.dto.response.RecruitCoreApplicationDecisionResponse; import inha.gdgoc.domain.admin.recruit.core.dto.response.RecruitCoreApplicationPageResponse; import inha.gdgoc.domain.admin.recruit.core.service.RecruitCoreAdminService; +import inha.gdgoc.domain.recruit.core.dto.response.RecruitCoreApplicantDetailResponse; import inha.gdgoc.domain.recruit.core.entity.RecruitCoreApplication; import inha.gdgoc.domain.recruit.core.enums.RecruitCoreResultStatus; import inha.gdgoc.domain.user.enums.TeamType; @@ -65,6 +66,12 @@ public RecruitCoreApplicationPageResponse list( ); } + @PreAuthorize(ORGANIZER_OR_HR_LEAD_RULE) + @GetMapping("/{applicationId}") + public ResponseEntity detail(@PathVariable Long applicationId) { + return ResponseEntity.ok(adminService.getApplicationDetail(applicationId)); + } + @PreAuthorize(ORGANIZER_OR_HR_LEAD_RULE) @PostMapping("/{applicationId}/accept") public ResponseEntity accept( diff --git a/src/main/java/inha/gdgoc/domain/admin/recruit/core/service/RecruitCoreAdminService.java b/src/main/java/inha/gdgoc/domain/admin/recruit/core/service/RecruitCoreAdminService.java index 2b6a41f..ec13eac 100644 --- a/src/main/java/inha/gdgoc/domain/admin/recruit/core/service/RecruitCoreAdminService.java +++ b/src/main/java/inha/gdgoc/domain/admin/recruit/core/service/RecruitCoreAdminService.java @@ -2,6 +2,7 @@ import inha.gdgoc.domain.admin.recruit.core.dto.request.RecruitCoreApplicationAcceptRequest; import inha.gdgoc.domain.admin.recruit.core.dto.request.RecruitCoreApplicationRejectRequest; +import inha.gdgoc.domain.recruit.core.dto.response.RecruitCoreApplicantDetailResponse; import inha.gdgoc.domain.admin.recruit.core.dto.response.RecruitCoreApplicationDecisionResponse; import inha.gdgoc.domain.recruit.core.entity.RecruitCoreApplication; import inha.gdgoc.domain.recruit.core.enums.RecruitCoreResultStatus; @@ -43,6 +44,11 @@ public Page searchApplications( return repository.findAll(spec, pageable); } + @Transactional(readOnly = true) + public RecruitCoreApplicantDetailResponse getApplicationDetail(Long applicationId) { + return RecruitCoreApplicantDetailResponse.from(getApplication(applicationId)); + } + @Transactional public RecruitCoreApplicationDecisionResponse accept( Long applicationId, diff --git a/src/main/java/inha/gdgoc/domain/admin/user/service/UserAdminService.java b/src/main/java/inha/gdgoc/domain/admin/user/service/UserAdminService.java index d802c4b..ed223df 100644 --- a/src/main/java/inha/gdgoc/domain/admin/user/service/UserAdminService.java +++ b/src/main/java/inha/gdgoc/domain/admin/user/service/UserAdminService.java @@ -236,11 +236,11 @@ private void validateLeadAndCorePolicy( } if (editorRole == UserRole.LEAD) { - if (!(targetCurrentRole == UserRole.MEMBER || targetCurrentRole == UserRole.CORE)) { - throw new BusinessException(GlobalErrorCode.FORBIDDEN_USER, "LEAD는 MEMBER/CORE만 수정할 수 있습니다."); + if (!(targetCurrentRole == UserRole.GUEST || targetCurrentRole == UserRole.MEMBER || targetCurrentRole == UserRole.CORE)) { + throw new BusinessException(GlobalErrorCode.FORBIDDEN_USER, "LEAD는 GUEST/MEMBER/CORE만 수정할 수 있습니다."); } - if (!(newRole == UserRole.MEMBER || newRole == UserRole.CORE)) { - throw new BusinessException(GlobalErrorCode.FORBIDDEN_USER, "LEAD는 MEMBER/CORE로만 변경할 수 있습니다."); + if (!(newRole == UserRole.GUEST || newRole == UserRole.MEMBER || newRole == UserRole.CORE)) { + throw new BusinessException(GlobalErrorCode.FORBIDDEN_USER, "LEAD는 GUEST/MEMBER/CORE로만 변경할 수 있습니다."); } }