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} +