diff --git a/src/main/java/com/dbnt/faisp/authMgt/AuthMgtService.java b/src/main/java/com/dbnt/faisp/authMgt/AuthMgtService.java index ce702977..cb00586e 100644 --- a/src/main/java/com/dbnt/faisp/authMgt/AuthMgtService.java +++ b/src/main/java/com/dbnt/faisp/authMgt/AuthMgtService.java @@ -3,6 +3,7 @@ package com.dbnt.faisp.authMgt; import com.dbnt.faisp.authMgt.mapper.AuthMgtMapper; import com.dbnt.faisp.authMgt.model.AccessConfig; import com.dbnt.faisp.authMgt.model.ApprovalConfig; +import com.dbnt.faisp.authMgt.model.AuthMgt; import com.dbnt.faisp.authMgt.repository.AccessConfigRepository; import com.dbnt.faisp.authMgt.repository.ApprovalConfigRepository; import com.dbnt.faisp.userInfo.model.UserInfo; @@ -27,4 +28,9 @@ public class AuthMgtService { public List selectApprovalConfigList(UserInfo userInfo) { return authMgtMapper.selectApprovalConfigList(userInfo); } + + public void saveAuth(AuthMgt authMgt) { + accessConfigRepository.saveAll(authMgt.getAccessConfigList()); + approvalConfigRepository.saveAll(authMgt.getApprovalConfigList()); + } } diff --git a/src/main/java/com/dbnt/faisp/authMgt/model/AuthMgt.java b/src/main/java/com/dbnt/faisp/authMgt/model/AuthMgt.java new file mode 100644 index 00000000..813349f1 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/authMgt/model/AuthMgt.java @@ -0,0 +1,13 @@ +package com.dbnt.faisp.authMgt.model; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class AuthMgt { + List accessConfigList; + List approvalConfigList; +} diff --git a/src/main/java/com/dbnt/faisp/codeMgt/CodeMgtService.java b/src/main/java/com/dbnt/faisp/codeMgt/CodeMgtService.java index 179d5c16..94be0287 100644 --- a/src/main/java/com/dbnt/faisp/codeMgt/CodeMgtService.java +++ b/src/main/java/com/dbnt/faisp/codeMgt/CodeMgtService.java @@ -41,10 +41,11 @@ public class CodeMgtService{ } public List selectCommonCodeList() { - return codeMgtRepository.findByUseChkOrderByItemCdAsc("T"); + //return codeMgtRepository.findByUseChkOrderByItemCdAsc("T"); + return codeMgtRepository.findByOrderByItemCdAsc(); } public List selectCodeMgtList(String categoryCd) { - return codeMgtRepository.findByCategoryCdOrderByItemCdAsc(categoryCd); + return codeMgtRepository.findByCategoryCdAndUseChkOrderByItemCdAsc(categoryCd, "T"); } } diff --git a/src/main/java/com/dbnt/faisp/codeMgt/repository/CodeMgtRepository.java b/src/main/java/com/dbnt/faisp/codeMgt/repository/CodeMgtRepository.java index b3c10ed0..c34bb062 100644 --- a/src/main/java/com/dbnt/faisp/codeMgt/repository/CodeMgtRepository.java +++ b/src/main/java/com/dbnt/faisp/codeMgt/repository/CodeMgtRepository.java @@ -9,5 +9,7 @@ import java.util.List; public interface CodeMgtRepository extends JpaRepository { List findByCategoryCdOrderByItemCdAsc(String categoryCd); + List findByCategoryCdAndUseChkOrderByItemCdAsc(String categoryCd, String useChk); List findByUseChkOrderByItemCdAsc(String useChk); + List findByOrderByItemCdAsc(); } diff --git a/src/main/java/com/dbnt/faisp/config/Role.java b/src/main/java/com/dbnt/faisp/config/Role.java index ed1a5d36..30cd6296 100644 --- a/src/main/java/com/dbnt/faisp/config/Role.java +++ b/src/main/java/com/dbnt/faisp/config/Role.java @@ -6,8 +6,9 @@ import lombok.Getter; @AllArgsConstructor @Getter public enum Role { - ADMIN("ROLE_ADMIN"), - USER("ROLE_USER"); + ADMIN("ROLE_ADMIN"), + SUB_ADMIN("ROLE_SUB_ADMIN"), + USER("ROLE_USER"); - private String value; + private String value; } diff --git a/src/main/java/com/dbnt/faisp/controller/AuthMgtController.java b/src/main/java/com/dbnt/faisp/controller/AuthMgtController.java index 1c8dd5b2..5c31aac7 100644 --- a/src/main/java/com/dbnt/faisp/controller/AuthMgtController.java +++ b/src/main/java/com/dbnt/faisp/controller/AuthMgtController.java @@ -1,6 +1,9 @@ package com.dbnt.faisp.controller; import com.dbnt.faisp.authMgt.AuthMgtService; +import com.dbnt.faisp.authMgt.model.AccessConfig; +import com.dbnt.faisp.authMgt.model.ApprovalConfig; +import com.dbnt.faisp.authMgt.model.AuthMgt; import com.dbnt.faisp.menuMgt.MenuMgtService; import com.dbnt.faisp.userInfo.UserInfoService; import com.dbnt.faisp.userInfo.model.UserInfo; @@ -8,18 +11,19 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; +import java.util.List; + @RestController @RequiredArgsConstructor @RequestMapping("/authMgt") public class AuthMgtController { - private final MenuMgtService menuMgtService; private final UserInfoService userInfoService; private final AuthMgtService authMgtService; @GetMapping("/authMgtPage") - public ModelAndView menuMgtPage(UserInfo userInfo) { + public ModelAndView authMgtPage(UserInfo userInfo) { ModelAndView mav = new ModelAndView("adminPage/authMgt/authMgt"); userInfo.setQueryInfo(); mav.addObject("userInfoList", userInfoService.selectUserInfoList(userInfo)); @@ -38,23 +42,10 @@ public class AuthMgtController { return mav; } - /*@GetMapping("/menuEditModal") - public ModelAndView menuEditModal(MenuMgt menuMgt){ - ModelAndView mav = new ModelAndView("/adminPage/menuMgt/menuEditModal"); - mav.addObject("menuMgt", menuMgt); - return mav; - } - - @PostMapping("/saveMenuMgt") - public String saveMenuMgt(MenuMgt menuMgt){ - return menuMgtService.saveMenuMgt(menuMgt); - } - - @PostMapping("/deleteMenuMgt") - @ResponseBody - public String deleteMenuMgt(@RequestBody List menuMgt){ - menuMgtService.deleteMenuMgt(menuMgt); + @PostMapping("/saveAuth") + public String saveAuth(@RequestBody AuthMgt authMgt){ + authMgtService.saveAuth(authMgt); return ""; - }*/ + } } diff --git a/src/main/java/com/dbnt/faisp/controller/OrganConfigController.java b/src/main/java/com/dbnt/faisp/controller/OrganConfigController.java new file mode 100644 index 00000000..7390de5c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/controller/OrganConfigController.java @@ -0,0 +1,23 @@ +package com.dbnt.faisp.controller; + +import com.dbnt.faisp.organMgt.OrganConfigService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + + +@RestController +@RequiredArgsConstructor +@RequestMapping("/organMgt") +public class OrganConfigController { + private final OrganConfigService organConfigService; + + @GetMapping("/organMgtPage") + public ModelAndView organMgtPage(UserInfo userInfo) { + ModelAndView mav = new ModelAndView("adminPage/organMgt/organMgt"); + mav.addObject("searchParams", userInfo); + return mav; + } + +} diff --git a/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java b/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java index f9ffaef8..81cb89df 100644 --- a/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java +++ b/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java @@ -29,6 +29,8 @@ public class MenuMgt extends BaseModel { private String cat3Cd; @Column(name = "menu_url", nullable = false) private String menuUrl; + @Column(name = "approval_chk") + private String approvalChk; @Transient private Integer cat1RowspanCnt; diff --git a/src/main/java/com/dbnt/faisp/organMgt/OrganConfigService.java b/src/main/java/com/dbnt/faisp/organMgt/OrganConfigService.java new file mode 100644 index 00000000..ed8d027c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/organMgt/OrganConfigService.java @@ -0,0 +1,10 @@ +package com.dbnt.faisp.organMgt; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class OrganConfigService { + +} diff --git a/src/main/java/com/dbnt/faisp/organMgt/model/OrganConfig.java b/src/main/java/com/dbnt/faisp/organMgt/model/OrganConfig.java new file mode 100644 index 00000000..25099d99 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/organMgt/model/OrganConfig.java @@ -0,0 +1,30 @@ +package com.dbnt.faisp.organMgt.model; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "organ_config") +public class OrganConfig { + @Id + @Column(name = "organ_cd") + private String organCd; + @Column(name = "organ_type") + private String organType; + @Column(name = "parent_organ") + private String parentOrgan; + + @Transient + private List organConfigList; +} diff --git a/src/main/java/com/dbnt/faisp/organMgt/repository/OrganConfigRepository.java b/src/main/java/com/dbnt/faisp/organMgt/repository/OrganConfigRepository.java new file mode 100644 index 00000000..e3fbd3b4 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/organMgt/repository/OrganConfigRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.organMgt.repository; + +import com.dbnt.faisp.organMgt.model.OrganConfig; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface OrganConfigRepository extends JpaRepository { + +} diff --git a/src/main/resources/mybatisMapper/menuMgtMapper.xml b/src/main/resources/mybatisMapper/menuMgtMapper.xml index e1f6e64a..1ae796b0 100644 --- a/src/main/resources/mybatisMapper/menuMgtMapper.xml +++ b/src/main/resources/mybatisMapper/menuMgtMapper.xml @@ -9,7 +9,8 @@ cat1_cd as cat1Cd, cat2_cd as cat2Cd, cat3_cd as cat3Cd, - menu_url as menuUrl + menu_url as menuUrl, + approval_chk as approvalChk from menu_mgt diff --git a/src/main/resources/static/js/authMgt/authMgt.js b/src/main/resources/static/js/authMgt/authMgt.js index 0e0df23b..306f52bc 100644 --- a/src/main/resources/static/js/authMgt/authMgt.js +++ b/src/main/resources/static/js/authMgt/authMgt.js @@ -13,4 +13,55 @@ $(document).on('click', '.userInfoTr', function (){ } }); +}) + +$(document).on('click', '.radioTd', function (){ + $(this).find('input').prop('checked', true); +}) + +$(document).on('click', '#saveAuthBtn', function (){ + if(confirm("저장하시겠습니까?")){ + contentFade("in"); + const userSeq = Number($("#userSeq").val()); + const accessConfigList = [] + $("#accessEditTable").find('tbody').children().each(function (idx, tr){ + accessConfigList.push( + { + userSeq: userSeq, + menuKey: Number($(this).find('.menuKey').val()), + accessAuth: $(this).find('input:checked').val() + } + ) + }) + const approvalConfigList = [] + $("#approvalEditTable").find('input:checked').each(function (idx, tr){ + approvalConfigList.push( + { + userSeq: userSeq, + menuKey: Number($(this).parents('tbody').find('.menuKey').val()), + approvalAuth: $(this).val() + } + ) + }) + const authList = {}; + authList.accessConfigList = accessConfigList; + authList.approvalConfigList = approvalConfigList; + $.ajax({ + type : 'POST', + url : "/authMgt/saveAuth", + data : JSON.stringify(authList), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("저장되었습니다."); + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } }) \ No newline at end of file diff --git a/src/main/resources/static/js/menuMgt/menuMgt.js b/src/main/resources/static/js/menuMgt/menuMgt.js index 42c2f8db..d0409618 100644 --- a/src/main/resources/static/js/menuMgt/menuMgt.js +++ b/src/main/resources/static/js/menuMgt/menuMgt.js @@ -13,7 +13,8 @@ $(document).on('click', '.menuTr', function (event){ cat1Cd: row.find(".cat1Cd").val(), cat2Cd: row.find(".cat2Cd").val(), cat3Cd: row.find(".cat3Cd").val(), - menuUrl: row.find(".menuUrl").val() + menuUrl: row.find(".menuUrl").val(), + approvalChk: row.find(".approvalChk").val() }) } } diff --git a/src/main/resources/static/js/organMgt/organMgt.js b/src/main/resources/static/js/organMgt/organMgt.js new file mode 100644 index 00000000..d43df30f --- /dev/null +++ b/src/main/resources/static/js/organMgt/organMgt.js @@ -0,0 +1,21 @@ +const organConfigList = [] + +$(document).on('click', '#middleAddBtn', function (){ + addTr('middleTbody') +}) + +$(document).on('click', '#bottomAddBtn', function (){ + addTr('bottomTbody') +}) + +$(document).on('click', '.rowDeleteBtn', function (){ + $(this).parents('tr').remove(); +}) +function addTr(tbody){ + $('#'+tbody).append( + '' + + '' + + '' + + '' + ) +} \ No newline at end of file diff --git a/src/main/resources/templates/adminPage/authMgt/authEditModal.html b/src/main/resources/templates/adminPage/authMgt/authEditModal.html index ebb9d4c1..ac2ae0b0 100644 --- a/src/main/resources/templates/adminPage/authMgt/authEditModal.html +++ b/src/main/resources/templates/adminPage/authMgt/authEditModal.html @@ -1,89 +1,100 @@ -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
대분류중분류소분류관리작성조회
- - - - - -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
대분류중분류계장대행계장과장대행과장
...
-
-
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
대분류중분류소분류관리작성조회
+ + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
대분류중분류소분류계장대행계장과장대행과장
.. + + + + + + + +
+
\ No newline at end of file diff --git a/src/main/resources/templates/adminPage/menuMgt/menuEditModal.html b/src/main/resources/templates/adminPage/menuMgt/menuEditModal.html index 36b8d97a..4ff7190f 100644 --- a/src/main/resources/templates/adminPage/menuMgt/menuEditModal.html +++ b/src/main/resources/templates/adminPage/menuMgt/menuEditModal.html @@ -55,6 +55,12 @@ +
+ +
+ +
+