diff --git a/src/main/java/com/dbnt/faisp/codeMgt/CodeMgtService.java b/src/main/java/com/dbnt/faisp/codeMgt/CodeMgtService.java index 94be0287..47dcfdb7 100644 --- a/src/main/java/com/dbnt/faisp/codeMgt/CodeMgtService.java +++ b/src/main/java/com/dbnt/faisp/codeMgt/CodeMgtService.java @@ -8,7 +8,10 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service @RequiredArgsConstructor @@ -40,9 +43,21 @@ public class CodeMgtService{ return codeCatgList; } - public List selectCommonCodeList() { + public Map> getCommonCode() { //return codeMgtRepository.findByUseChkOrderByItemCdAsc("T"); - return codeMgtRepository.findByOrderByItemCdAsc(); + List categoryList = codeCatgRepository.findAll(); + List codeList = codeMgtRepository.findByOrderByItemCdAsc(); + Map> categoryMap = new HashMap<>(); + for(CodeCatg category: categoryList){ + List childList = new ArrayList<>(); + for(CodeMgt code: codeList){ + if(code.getCategoryCd().equals(category.getCategoryCd())){ + childList.add(code); + } + } + categoryMap.put(category.getCategoryCd(), childList); + } + return categoryMap; } public List selectCodeMgtList(String categoryCd) { diff --git a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java index 57bb7ce9..e6a58aef 100644 --- a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java +++ b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java @@ -74,9 +74,21 @@ public class SecurityConfig{ ).hasRole(Role.SUB_ADMIN.name()) // SUB_ADMIN만 접근 허용 .antMatchers("/login").permitAll() // 로그인 페이지는 권한 없이 접근 허용 .and() // 로그인 설정 - .formLogin() .loginPage("/login") // Custom login form 사용 + .formLogin().loginPage("/login") // Custom login form 사용 .failureUrl("/login-error") // 로그인 실패 시 이동 - .defaultSuccessUrl("/") // 로그인 성공 시 redirect 이동 + .defaultSuccessUrl("/") // 로그인 성공 시 이동 + /*.failureHandler((request, response, exception) -> { + + }) // 로그인 실패시 동작 수행 + .successHandler((request, response, authentication) -> { + SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request,response); + if(savedRequest != null){ + String targetUrl = savedRequest.getRedirectUrl(); + new DefaultRedirectStrategy().sendRedirect(request,response,targetUrl); + }else{ + new DefaultRedirectStrategy().sendRedirect(request,response,"/"); + } + }) // 로그인 성공시 동작 수행.*/ .and() // 로그아웃 설정 .logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")) // 로그아웃 시 URL 재정의 .logoutSuccessUrl("/") // 로그아웃 성공 시 redirect 이동 diff --git a/src/main/java/com/dbnt/faisp/controller/BaseController.java b/src/main/java/com/dbnt/faisp/controller/BaseController.java index 3ea2c99b..74364e06 100644 --- a/src/main/java/com/dbnt/faisp/controller/BaseController.java +++ b/src/main/java/com/dbnt/faisp/controller/BaseController.java @@ -36,15 +36,17 @@ public class BaseController { }else{ loginUser.setOrganCdList(organConfigService.selectOrganListWhereUserOgCd(loginUser.getOgCd())); session.setAttribute("menuList", menuMgtService.selectAccessMenuListWhereUserSeq(loginUser.getUserSeq())); - session.setAttribute("commonCodeList", codeMgtService.selectCommonCodeList()); + session.setAttribute("commonCode", codeMgtService.getCommonCode()); mav = new ModelAndView("redirect:/dashboard"); } return mav; } @GetMapping("/refreshSession") - public void getSession(HttpSession session){ - session.setAttribute("commonCodeList", codeMgtService.selectCommonCodeList()); + public void getSession(@AuthenticationPrincipal UserInfo loginUser, HttpSession session){ + loginUser.setOrganCdList(organConfigService.selectOrganListWhereUserOgCd(loginUser.getOgCd())); + session.setAttribute("menuList", menuMgtService.selectAccessMenuListWhereUserSeq(loginUser.getUserSeq())); + session.setAttribute("commonCode", codeMgtService.getCommonCode()); } @GetMapping("/login") diff --git a/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtService.java b/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtService.java index 9bd0c189..9e0ae914 100644 --- a/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtService.java +++ b/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtService.java @@ -1,6 +1,5 @@ package com.dbnt.faisp.menuMgt; -import com.dbnt.faisp.authMgt.model.AccessConfig; import com.dbnt.faisp.menuMgt.mapper.MenuMgtMapper; import com.dbnt.faisp.menuMgt.model.MenuMgt; import com.dbnt.faisp.menuMgt.repository.MenuMgtRepository; @@ -8,8 +7,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import javax.persistence.Transient; -import java.util.ArrayList; -import java.util.List; +import java.util.*; @Service @RequiredArgsConstructor @@ -87,24 +85,80 @@ public class MenuMgtService { public List selectAccessMenuListWhereUserSeq(Integer userSeq) { List accessMenuList =menuMgtMapper.selectAccessMenuListWhereUserSeq(userSeq); - List menuList = new ArrayList<>(); - for(MenuMgt menuMgt: accessMenuList){ - boolean savedFlag = false; - for(MenuMgt savedMenu: menuList){ - if(savedChk(menuMgt.getCat1Cd(), savedMenu.getCat1Cd())){ - savedFlag = true; - break; - } - } - if(!savedFlag){ - MenuMgt topMenu = new MenuMgt(); - menuList.add(topMenu); + Set cat1Set = new HashSet<>(); + Set cat2Set = new HashSet<>(); + Set cat3Set = new HashSet<>(); + for(MenuMgt accessMenu: accessMenuList){ + cat1Set.add(accessMenu.getCat1Cd()); + cat2Set.add(accessMenu.getCat1Cd()+accessMenu.getCat2Cd()); + if(!accessMenu.getCat3Cd().isEmpty()){ + cat3Set.add(accessMenu.getCat1Cd()+accessMenu.getCat2Cd()+accessMenu.getCat3Cd()); } } - return menuList; - } - private boolean savedChk(String catCd1, String catCd2){ - return catCd1.equals(catCd2); + List firstMenuList = new ArrayList<>(); + Iterator cat1Itr = cat1Set.iterator(); + while(cat1Itr.hasNext()){ + String cat1Cd = cat1Itr.next(); + MenuMgt firstMenu = new MenuMgt(); + List secondMenuList = new ArrayList<>(); + firstMenu.setCat1Cd(cat1Cd); + Iterator cat2Itr = cat2Set.iterator(); + while(cat2Itr.hasNext()){ + String cat2Cd = cat2Itr.next(); + if(cat2Cd.contains(cat1Cd)){ + MenuMgt secondMenu = new MenuMgt(); + List thirdMenuList = new ArrayList<>(); + secondMenu.setCat2Cd(cat2Cd.replace(cat1Cd, "")); + Iterator cat3Itr = cat3Set.iterator(); + while(cat3Itr.hasNext()){ + String cat3Cd = cat3Itr.next(); + if(cat3Cd.contains(cat2Cd)){ + MenuMgt thirdMenu = new MenuMgt(); + thirdMenu.setCat3Cd(cat3Cd.replace(cat2Cd, "")); + for(MenuMgt accessMenu: accessMenuList){ + if(accessMenu.getCat1Cd().equals(cat1Cd) + && accessMenu.getCat2Cd().equals(secondMenu.getCat2Cd()) + && accessMenu.getCat3Cd().equals(thirdMenu.getCat3Cd())){ + thirdMenu.setMenuUrl(accessMenu.getMenuUrl()); + break; + } + } + thirdMenuList.add(thirdMenu); + } + } + if(thirdMenuList.size()>0){ + thirdMenuList.sort((o1, o2) -> { + String cat3_1 = o1.getCat3Cd(); + String cat3_2 = o2.getCat3Cd(); + return cat3_1.compareTo(cat3_2); + }); + secondMenu.setChildList(thirdMenuList); + }else{ + for(MenuMgt accessMenu: accessMenuList){ + if(accessMenu.getCat1Cd().equals(cat1Cd) + && accessMenu.getCat2Cd().equals(secondMenu.getCat2Cd())){ + secondMenu.setMenuUrl(accessMenu.getMenuUrl()); + break; + } + } + } + secondMenuList.add(secondMenu); + } + } + secondMenuList.sort((o1, o2) -> { + String cat2_1 = o1.getCat2Cd(); + String cat2_2 = o2.getCat2Cd(); + return cat2_1.compareTo(cat2_2); + }); + firstMenu.setChildList(secondMenuList); + firstMenuList.add(firstMenu); + } + firstMenuList.sort((o1, o2) -> { + String cat1_1 = o1.getCat1Cd(); + String cat1_2 = o2.getCat1Cd(); + return cat1_1.compareTo(cat1_2); + }); + return firstMenuList; } } 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 e48f90cc..58bb8420 100644 --- a/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java +++ b/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java @@ -33,10 +33,6 @@ public class MenuMgt extends BaseModel { @Column(name = "approval_chk") private String approvalChk; - @Transient - private String menuCd; - @Transient - private String menuNm; @Transient private List childList; diff --git a/src/main/resources/templates/adminPage/authMgt/authEditModal.html b/src/main/resources/templates/adminPage/authMgt/authEditModal.html index ac2ae0b0..eb206deb 100644 --- a/src/main/resources/templates/adminPage/authMgt/authEditModal.html +++ b/src/main/resources/templates/adminPage/authMgt/authEditModal.html @@ -16,12 +16,12 @@ - + - + @@ -29,7 +29,7 @@ - + @@ -63,12 +63,12 @@ - + . - + . @@ -76,7 +76,7 @@ - + diff --git a/src/main/resources/templates/adminPage/authMgt/authMgt.html b/src/main/resources/templates/adminPage/authMgt/authMgt.html index 0a61c68b..a3b91457 100644 --- a/src/main/resources/templates/adminPage/authMgt/authMgt.html +++ b/src/main/resources/templates/adminPage/authMgt/authMgt.html @@ -28,20 +28,16 @@
@@ -79,12 +75,12 @@ - + - + diff --git a/src/main/resources/templates/adminPage/menuMgt/menuEditModal.html b/src/main/resources/templates/adminPage/menuMgt/menuEditModal.html index 81686c2d..5600ad3f 100644 --- a/src/main/resources/templates/adminPage/menuMgt/menuEditModal.html +++ b/src/main/resources/templates/adminPage/menuMgt/menuEditModal.html @@ -15,10 +15,8 @@
@@ -28,10 +26,8 @@
@@ -41,10 +37,8 @@
diff --git a/src/main/resources/templates/adminPage/menuMgt/menuMgt.html b/src/main/resources/templates/adminPage/menuMgt/menuMgt.html index 5c1197f3..9ac12111 100644 --- a/src/main/resources/templates/adminPage/menuMgt/menuMgt.html +++ b/src/main/resources/templates/adminPage/menuMgt/menuMgt.html @@ -28,30 +28,24 @@
@@ -89,17 +83,17 @@ - + - + - + diff --git a/src/main/resources/templates/adminPage/userMgt/userMgt.html b/src/main/resources/templates/adminPage/userMgt/userMgt.html index 0391c140..b64dde8f 100644 --- a/src/main/resources/templates/adminPage/userMgt/userMgt.html +++ b/src/main/resources/templates/adminPage/userMgt/userMgt.html @@ -49,20 +49,16 @@
diff --git a/src/main/resources/templates/fragments/leftMenu.html b/src/main/resources/templates/fragments/leftMenu.html index ee72347d..9223d9bd 100644 --- a/src/main/resources/templates/fragments/leftMenu.html +++ b/src/main/resources/templates/fragments/leftMenu.html @@ -8,18 +8,13 @@ \ No newline at end of file diff --git a/src/main/resources/templates/layout/layout.html b/src/main/resources/templates/layout/layout.html index b85f457a..b56a3e75 100644 --- a/src/main/resources/templates/layout/layout.html +++ b/src/main/resources/templates/layout/layout.html @@ -37,8 +37,8 @@