From 87bf1c37de74d5a9b00884a9e9a66a67ffdd054c Mon Sep 17 00:00:00 2001 From: dyhj625 Date: Fri, 14 Mar 2025 13:16:31 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=EA=B6=8C=ED=95=9C?= =?UTF-8?q?=EB=B6=80=EC=97=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/MapBasedUrlRoleMapper.java | 1 + .../controller/api/AdminController.java | 65 +++++++++++++++++++ .../localhost/mapper/NetmemberMapper.java | 2 + .../localhost/service/NetmemberService.java | 12 +++- src/main/resources/mapper/NetmemberMapper.xml | 4 ++ 5 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 src/main/java/io/company/localhost/controller/api/AdminController.java diff --git a/src/main/java/io/company/localhost/common/security/mapper/MapBasedUrlRoleMapper.java b/src/main/java/io/company/localhost/common/security/mapper/MapBasedUrlRoleMapper.java index 9b2b577..804f9d1 100644 --- a/src/main/java/io/company/localhost/common/security/mapper/MapBasedUrlRoleMapper.java +++ b/src/main/java/io/company/localhost/common/security/mapper/MapBasedUrlRoleMapper.java @@ -36,6 +36,7 @@ public class MapBasedUrlRoleMapper implements UrlRoleMapper{ urlRoleMappings.put("/api/worddict/**", PERMIT_ALL); urlRoleMappings.put("/api/quilleditor/**", PERMIT_ALL); urlRoleMappings.put("/api/commuters/**", PERMIT_ALL); + urlRoleMappings.put("/api/admin/**", PERMIT_ALL); return new HashMap<>(urlRoleMappings); } } \ No newline at end of file diff --git a/src/main/java/io/company/localhost/controller/api/AdminController.java b/src/main/java/io/company/localhost/controller/api/AdminController.java new file mode 100644 index 0000000..4082f47 --- /dev/null +++ b/src/main/java/io/company/localhost/controller/api/AdminController.java @@ -0,0 +1,65 @@ +/************************************************************ + * + * @packageName : io.company.localhost.controller.api + * @fileName : AdminController.java + * @author : 서지희 + * @date : 25.03.14 + * @description : 게시판 + * + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- + * 25.03.14 서지희 최초 생성 + * + *************************************************************/ +package io.company.localhost.controller.api; + +import java.util.List; + +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import io.company.localhost.common.annotation.Member; +import io.company.localhost.common.annotation.ParameterCheck; +import io.company.localhost.common.annotation.ReqMap; +import io.company.localhost.common.dto.ApiResponse; +import io.company.localhost.common.dto.MapDto; +import io.company.localhost.service.NetmemberService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@RestController +@RequestMapping("/api/admin") +@RequiredArgsConstructor +@Slf4j +public class AdminController { + + private final NetmemberService netmemberService; + + @Member + @ParameterCheck + @GetMapping("/users") + public ApiResponse> getAllUsers() { + List response = netmemberService.getallUserList(); + return ApiResponse.ok(response); + } + + @PutMapping("/role") + public ApiResponse updateUserRole(@ReqMap MapDto map) { + // 요청 데이터에서 id와 role 추출 + Long id = Long.valueOf(map.get("id").toString()); + String role = map.get("role").toString(); + + // 역할 변환 + String newRole = role.equalsIgnoreCase("ADMIN") ? "ROLE_ADMIN" : "ROLE_USER"; + + // 권한 업데이트 서비스 호출 + netmemberService.updateUserRole(id, newRole); + + return ApiResponse.ok("관리자 권한이 변경되었습니다."); + } + +} diff --git a/src/main/java/io/company/localhost/mapper/NetmemberMapper.java b/src/main/java/io/company/localhost/mapper/NetmemberMapper.java index c3d6584..e7383c8 100644 --- a/src/main/java/io/company/localhost/mapper/NetmemberMapper.java +++ b/src/main/java/io/company/localhost/mapper/NetmemberMapper.java @@ -43,5 +43,7 @@ public interface NetmemberMapper { int updatePassword(MapDto map); List getallUserList(); + + void updateUserRole(Long id, String role); } diff --git a/src/main/java/io/company/localhost/service/NetmemberService.java b/src/main/java/io/company/localhost/service/NetmemberService.java index a836f79..f27fd96 100644 --- a/src/main/java/io/company/localhost/service/NetmemberService.java +++ b/src/main/java/io/company/localhost/service/NetmemberService.java @@ -122,6 +122,16 @@ public class NetmemberService { public List getallUserList() { return memberMapper.getallUserList(); } + + /** + * 사원 권한 업데이트 + * + * @param + * @return + */ + public void updateUserRole(Long id, String newRole) { + memberMapper.updateUserRole(id, newRole); + } /** * 로그인 토큰 @@ -132,7 +142,7 @@ public class NetmemberService { public void updateMemberToken(MapDto map) { memberMapper.updateMemberToken(map); } - + /** * 비밀번호 재설정 member 체크 * diff --git a/src/main/resources/mapper/NetmemberMapper.xml b/src/main/resources/mapper/NetmemberMapper.xml index 2b8e75f..56d36ea 100644 --- a/src/main/resources/mapper/NetmemberMapper.xml +++ b/src/main/resources/mapper/NetmemberMapper.xml @@ -151,5 +151,9 @@ AND m.MEMBERLEA ="N" + + + UPDATE netmember SET MEMBERROL = #{role} WHERE MEMBERSEQ = #{id} +