From c1403f0e51bb69dd33d96a284e0d207ddff1ebed Mon Sep 17 00:00:00 2001 From: TaehunPark Date: Tue, 30 Aug 2022 11:57:53 +0900 Subject: [PATCH] =?UTF-8?q?=EC=99=B8=EC=82=AC=EA=B2=BD=EC=B0=B0=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20=EC=9E=91=EC=97=85=EC=A4=91.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dbnt/faisp/codeMgt/model/CodeMgt.java | 8 +- .../com/dbnt/faisp/config/SecurityConfig.java | 2 +- .../faisp/controller/userMgtController.java | 58 ++++++ .../dbnt/faisp/userInfo/UserInfoService.java | 14 ++ .../dbnt/faisp/userInfo/model/UserInfo.java | 9 + .../repository/UserInfoRepository.java | 2 + .../mybatisMapper/UserInfoMapper.xml | 10 +- .../resources/static/js/userMgt/userMgt.js | 59 ++++++ .../adminPage/userMgt/userEditModal.html | 100 ++++++++++ .../templates/adminPage/userMgt/userMgt.html | 180 ++++++++++++++++++ .../resources/templates/fragments/header.html | 2 +- 11 files changed, 440 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/dbnt/faisp/controller/userMgtController.java create mode 100644 src/main/resources/static/js/userMgt/userMgt.js create mode 100644 src/main/resources/templates/adminPage/userMgt/userEditModal.html create mode 100644 src/main/resources/templates/adminPage/userMgt/userMgt.html diff --git a/src/main/java/com/dbnt/faisp/codeMgt/model/CodeMgt.java b/src/main/java/com/dbnt/faisp/codeMgt/model/CodeMgt.java index 7c5c07c1..b8defee6 100644 --- a/src/main/java/com/dbnt/faisp/codeMgt/model/CodeMgt.java +++ b/src/main/java/com/dbnt/faisp/codeMgt/model/CodeMgt.java @@ -30,7 +30,13 @@ public class CodeMgt { @Transient private String status; - @Embeddable + @Override +public String toString() { + return "CodeMgt [categoryCd=" + categoryCd + ", itemCd=" + itemCd + ", itemValue=" + itemValue + ", useChk=" + + useChk + ", status=" + status + "]"; +} + +@Embeddable @Data @NoArgsConstructor @AllArgsConstructor diff --git a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java index 1e3f5382..542a9cce 100644 --- a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java +++ b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java @@ -60,7 +60,7 @@ public class SecurityConfig{ protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.authorizeRequests() // 페이지 권한 설정 .antMatchers("/dashboard", "/refreshSession").hasRole(Role.USER.name()) // USER, ADMIN 접근 허용 - .antMatchers("/codeMgt/**", "/menuMgt/**", "/authMgt/**").hasRole(Role.ADMIN.name()) // ADMIN만 접근 허용 + .antMatchers("/codeMgt/**", "/menuMgt/**", "/authMgt/**","/userMgt/**").hasRole(Role.ADMIN.name()) // ADMIN만 접근 허용 .antMatchers("/login").permitAll() // 로그인 페이지는 권한 없이 접근 허용 .and() // 로그인 설정 .formLogin() .loginPage("/login") // Custom login form 사용 diff --git a/src/main/java/com/dbnt/faisp/controller/userMgtController.java b/src/main/java/com/dbnt/faisp/controller/userMgtController.java new file mode 100644 index 00000000..0dcc1f53 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/controller/userMgtController.java @@ -0,0 +1,58 @@ +package com.dbnt.faisp.controller; + +import com.dbnt.faisp.authMgt.AuthMgtService; +import com.dbnt.faisp.codeMgt.CodeMgtService; +import com.dbnt.faisp.menuMgt.MenuMgtService; +import com.dbnt.faisp.menuMgt.model.MenuMgt; +import com.dbnt.faisp.userInfo.UserInfoService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; + +import java.util.List; + +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + + +@RestController +@RequiredArgsConstructor +@RequestMapping("/userMgt") +public class userMgtController { + + private final MenuMgtService menuMgtService; + private final UserInfoService userInfoService; + private final AuthMgtService authMgtService; + private final CodeMgtService codeMgtService; + + @GetMapping("/userMgtPage") + public ModelAndView codeMgtPage(UserInfo userInfo) { + ModelAndView mav = new ModelAndView("adminPage/userMgt/userMgt"); + userInfo.setQueryInfo(); + if(userInfo.getUserStatus() == "" || userInfo.getUserStatus() == null) { + userInfo.setUserStatus("USC003"); + } + mav.addObject("userInfoList", userInfoService.selectUserInfoList(userInfo)); + userInfo.setContentCnt(userInfoService.selectUserInfoListCnt(userInfo)); + userInfo.setPaginationInfo(); + mav.addObject("searchParams", userInfo); + System.out.println("@@"+userInfo); + return mav; + } + + @GetMapping("/userEditModal") + public ModelAndView menuEditModal(UserInfo userInfo){ + ModelAndView mav = new ModelAndView("adminPage/userMgt/userEditModal"); + mav.addObject("OgList", codeMgtService.selectCodeMgtList("OG")); + mav.addObject("OfcList", codeMgtService.selectCodeMgtList("OFC")); + mav.addObject("userInfo", userInfoService.selectUserInfo(userInfo.getUserSeq())); + return mav; + } + + @PostMapping("/userApproval") + @ResponseBody + public int userApproval(@RequestBody List userInfo){ + int result = userInfoService.updateUserApproval(userInfo); + return result; + } + +} diff --git a/src/main/java/com/dbnt/faisp/userInfo/UserInfoService.java b/src/main/java/com/dbnt/faisp/userInfo/UserInfoService.java index 41f2fe9d..65538a9f 100644 --- a/src/main/java/com/dbnt/faisp/userInfo/UserInfoService.java +++ b/src/main/java/com/dbnt/faisp/userInfo/UserInfoService.java @@ -67,5 +67,19 @@ public class UserInfoService implements UserDetailsService { public Integer selectUserInfoListCnt(UserInfo userInfo) { return userInfoMapper.selectUserInfoListCnt(userInfo); } + + public UserInfo selectUserInfo(Integer userSeq) { + return userInfoRepository.findByUserSeq(userSeq); + } + @Transactional + public int updateUserApproval(List userInfo) { + int cnt = 0; + for(UserInfo user: userInfo) { + UserInfo dbUserInfo = userInfoRepository.findById(user.getUserSeq()).orElse(null); + dbUserInfo.setUserStatus(user.getUserStatus()); + cnt++; + } + return cnt; + } } diff --git a/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java b/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java index bfb18b6b..7d771075 100644 --- a/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java +++ b/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java @@ -93,4 +93,13 @@ public class UserInfo extends BaseModel implements UserDetails{ public boolean isEnabled() { return userStatus.equals("USC003"); } + +@Override +public String toString() { + return "UserInfo [userSeq=" + userSeq + ", userId=" + userId + ", password=" + password + ", userNm=" + userNm + + ", ogCd=" + ogCd + ", ofcCd=" + ofcCd + ", userRole=" + userRole + ", userStatus=" + userStatus + + ", wrtDt=" + wrtDt + ", modifyPassword=" + modifyPassword + ", positionName=" + positionName + + ", departmentName=" + departmentName + ", accessConfigList=" + accessConfigList + ", approvalConfigList=" + + approvalConfigList + "]"; +} } diff --git a/src/main/java/com/dbnt/faisp/userInfo/repository/UserInfoRepository.java b/src/main/java/com/dbnt/faisp/userInfo/repository/UserInfoRepository.java index bd5e4594..4f795266 100644 --- a/src/main/java/com/dbnt/faisp/userInfo/repository/UserInfoRepository.java +++ b/src/main/java/com/dbnt/faisp/userInfo/repository/UserInfoRepository.java @@ -9,4 +9,6 @@ import java.util.Optional; public interface UserInfoRepository extends JpaRepository { Optional findByUserId(String userId); + UserInfo findByUserSeq(Integer userSeq); + } diff --git a/src/main/resources/mybatisMapper/UserInfoMapper.xml b/src/main/resources/mybatisMapper/UserInfoMapper.xml index 9ded99b3..0cfa10fe 100644 --- a/src/main/resources/mybatisMapper/UserInfoMapper.xml +++ b/src/main/resources/mybatisMapper/UserInfoMapper.xml @@ -15,7 +15,15 @@ ofc_cd, wrt_dt from user_info - where user_status != 'D' + where + + + user_status = #{userStatus} + + + user_status != 'D' + + and user_id like '%'||#{userId}||'%' diff --git a/src/main/resources/static/js/userMgt/userMgt.js b/src/main/resources/static/js/userMgt/userMgt.js new file mode 100644 index 00000000..b00822c0 --- /dev/null +++ b/src/main/resources/static/js/userMgt/userMgt.js @@ -0,0 +1,59 @@ + +$(document).on('click', '.userInfoTr', function (){ + if($('#userStatus').val() == 'USC003'){ + $.ajax({ + url: '/userMgt/userEditModal', + data: {userSeq: Number($(this).find(".userSeq").val())}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#configInfo").empty().append(html) + $("#userEditModal").modal('show'); + }, + error:function(){ + + } + }); + } +}) + +$(document).on('click', '#logTab', function (){ + location.href='/userMgt/userMgtPage?userStatus=USC002';  +}) + +$(document).on('click', '#contentTab', function (){ + location.href='/userMgt/userMgtPage?userStatus=USC003'; +}) + +$(document).ready( function() { + $('#chk-all').click( function() { + $('.userInfoCheckBox').prop('checked',this.checked); + }); +}); + +$(document).on('click', '#approvalBtn', function (){ + alert("승인") + var checkArr = []; + $('input:checkbox[name=userChk]:checked').each(function (idx, el){ + checkArr.push({}); + const target = $(el); + checkArr[idx].userSeq = Number(target.parents('tr').find('.userSeq').val()); + checkArr[idx].userStatus = "USC003" + }) + console.log('@@->'+checkArr); + $.ajax({ + type : 'POST', + url : "/userMgt/userApproval", + data : JSON.stringify(checkArr), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + + }, + error : function(xhr, status) { + + } + }) +}) diff --git a/src/main/resources/templates/adminPage/userMgt/userEditModal.html b/src/main/resources/templates/adminPage/userMgt/userEditModal.html new file mode 100644 index 00000000..06150663 --- /dev/null +++ b/src/main/resources/templates/adminPage/userMgt/userEditModal.html @@ -0,0 +1,100 @@ + + +
+
+
+
+ +
+ + +
+ +
+ +
+
+
+ +
+ + +
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+
+
+
+
+ \ No newline at end of file diff --git a/src/main/resources/templates/adminPage/userMgt/userMgt.html b/src/main/resources/templates/adminPage/userMgt/userMgt.html new file mode 100644 index 00000000..9fc10941 --- /dev/null +++ b/src/main/resources/templates/adminPage/userMgt/userMgt.html @@ -0,0 +1,180 @@ + + + + + +
+
+

외사경찰 관리

+ + + + + + + + +
+
+
+
+ + +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
소속부서계급성명아이디등록일
+ +
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+ + +
+ \ No newline at end of file diff --git a/src/main/resources/templates/fragments/header.html b/src/main/resources/templates/fragments/header.html index bca6a31e..11bea40f 100644 --- a/src/main/resources/templates/fragments/header.html +++ b/src/main/resources/templates/fragments/header.html @@ -13,7 +13,7 @@