From ccac3625518efc4f68dc9e50e71bc51535c02fc8 Mon Sep 17 00:00:00 2001 From: pricelees Date: Sun, 14 Sep 2025 22:45:43 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20\@AdminOnly=EC=97=90=20=EA=B8=B0?= =?UTF-8?q?=EB=B3=B8=20=ED=83=80=EC=9E=85(STORE)=20=EC=A7=80=EC=A0=95=20-?= =?UTF-8?q?=20HQ=20=EA=B6=8C=ED=95=9C=EC=9D=B4=20=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EA=B2=BD=EC=9A=B0=EC=97=90=EB=A7=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roomescape/auth/web/support/AuthAnnotations.kt | 2 +- .../kotlin/roomescape/schedule/docs/ScheduleAPI.kt | 9 ++++----- src/main/kotlin/roomescape/theme/docs/ThemeApi.kt | 11 +++++------ 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/roomescape/auth/web/support/AuthAnnotations.kt b/src/main/kotlin/roomescape/auth/web/support/AuthAnnotations.kt index 3bc17e9b..a1692c91 100644 --- a/src/main/kotlin/roomescape/auth/web/support/AuthAnnotations.kt +++ b/src/main/kotlin/roomescape/auth/web/support/AuthAnnotations.kt @@ -6,7 +6,7 @@ import roomescape.admin.infrastructure.persistence.Privilege @Target(AnnotationTarget.FUNCTION) @Retention(AnnotationRetention.RUNTIME) annotation class AdminOnly( - val type: AdminType, + val type: AdminType = AdminType.STORE, val privilege: Privilege ) diff --git a/src/main/kotlin/roomescape/schedule/docs/ScheduleAPI.kt b/src/main/kotlin/roomescape/schedule/docs/ScheduleAPI.kt index de5d416e..e0009e9f 100644 --- a/src/main/kotlin/roomescape/schedule/docs/ScheduleAPI.kt +++ b/src/main/kotlin/roomescape/schedule/docs/ScheduleAPI.kt @@ -9,7 +9,6 @@ import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.PathVariable import org.springframework.web.bind.annotation.RequestBody import org.springframework.web.bind.annotation.RequestParam -import roomescape.admin.infrastructure.persistence.AdminType import roomescape.admin.infrastructure.persistence.Privilege import roomescape.auth.web.support.AdminOnly import roomescape.auth.web.support.Public @@ -54,21 +53,21 @@ interface ScheduleAPI { @PathVariable("id") id: Long ): ResponseEntity> - @AdminOnly(type = AdminType.STORE, privilege = Privilege.READ_DETAIL) + @AdminOnly(privilege = Privilege.READ_DETAIL) @Operation(summary = "일정 상세 조회", tags = ["관리자 로그인이 필요한 API"]) @ApiResponses(ApiResponse(responseCode = "200", description = "감사 정보를 포함하여 일정 상세 조회", useReturnTypeSchema = true)) fun findScheduleDetail( @PathVariable("id") id: Long ): ResponseEntity> - @AdminOnly(type = AdminType.STORE, privilege = Privilege.CREATE) + @AdminOnly(privilege = Privilege.CREATE) @Operation(summary = "일정 생성", tags = ["관리자 로그인이 필요한 API"]) @ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true)) fun createSchedule( @Valid @RequestBody request: ScheduleCreateRequest ): ResponseEntity> - @AdminOnly(type = AdminType.STORE, privilege = Privilege.UPDATE) + @AdminOnly(privilege = Privilege.UPDATE) @Operation(summary = "일정 수정", tags = ["관리자 로그인이 필요한 API"]) @ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true)) fun updateSchedule( @@ -76,7 +75,7 @@ interface ScheduleAPI { @Valid @RequestBody request: ScheduleUpdateRequest ): ResponseEntity> - @AdminOnly(type = AdminType.STORE, privilege = Privilege.DELETE) + @AdminOnly(privilege = Privilege.DELETE) @Operation(summary = "일정 삭제", tags = ["관리자 로그인이 필요한 API"]) @ApiResponses(ApiResponse(responseCode = "204", description = "성공", useReturnTypeSchema = true)) fun deleteSchedule( diff --git a/src/main/kotlin/roomescape/theme/docs/ThemeApi.kt b/src/main/kotlin/roomescape/theme/docs/ThemeApi.kt index 3406dd98..d76f91b2 100644 --- a/src/main/kotlin/roomescape/theme/docs/ThemeApi.kt +++ b/src/main/kotlin/roomescape/theme/docs/ThemeApi.kt @@ -8,7 +8,6 @@ import jakarta.validation.Valid import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.PathVariable import org.springframework.web.bind.annotation.RequestBody -import roomescape.admin.infrastructure.persistence.AdminType import roomescape.admin.infrastructure.persistence.Privilege import roomescape.auth.web.support.AdminOnly import roomescape.auth.web.support.Public @@ -17,27 +16,27 @@ import roomescape.theme.web.* @Tag(name = "5. 관리자 테마 API", description = "관리자 페이지에서 테마를 조회 / 추가 / 삭제할 때 사용합니다.") interface ThemeAPIV2 { - @AdminOnly(type = AdminType.STORE, privilege = Privilege.READ_SUMMARY) + @AdminOnly(privilege = Privilege.READ_SUMMARY) @Operation(summary = "모든 테마 조회", description = "관리자 페이지에서 요약된 테마 목록을 조회합니다.", tags = ["관리자 로그인이 필요한 API"]) @ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true)) fun findAdminThemes(): ResponseEntity> - @AdminOnly(type = AdminType.STORE, privilege = Privilege.READ_DETAIL) + @AdminOnly(privilege = Privilege.READ_DETAIL) @Operation(summary = "테마 상세 조회", description = "해당 테마의 상세 정보를 조회합니다.", tags = ["관리자 로그인이 필요한 API"]) @ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true)) fun findAdminThemeDetail(@PathVariable("id") id: Long): ResponseEntity> - @AdminOnly(type = AdminType.STORE, privilege = Privilege.CREATE) + @AdminOnly(privilege = Privilege.CREATE) @Operation(summary = "테마 추가", tags = ["관리자 로그인이 필요한 API"]) @ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true)) fun createTheme(@Valid @RequestBody themeCreateRequest: ThemeCreateRequest): ResponseEntity> - @AdminOnly(type = AdminType.STORE, privilege = Privilege.DELETE) + @AdminOnly(privilege = Privilege.DELETE) @Operation(summary = "테마 삭제", tags = ["관리자 로그인이 필요한 API"]) @ApiResponses(ApiResponse(responseCode = "204", description = "성공", useReturnTypeSchema = true)) fun deleteTheme(@PathVariable id: Long): ResponseEntity> - @AdminOnly(type = AdminType.STORE, privilege = Privilege.UPDATE) + @AdminOnly(privilege = Privilege.UPDATE) @Operation(summary = "테마 수정", tags = ["관리자 로그인이 필요한 API"]) @ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true)) fun updateTheme(