From 60a4a7d86d7455a22b5334c8d1b5424401f70693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Thu, 1 Sep 2022 18:38:16 +0900 Subject: [PATCH] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=EB=B3=84=20?= =?UTF-8?q?=EB=A9=94=EB=89=B4=20=ED=91=9C=ED=98=84=20=EC=9E=91=EC=97=85?= =?UTF-8?q?=EC=A4=91.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dbnt/faisp/config/BaseModel.java | 3 +++ .../com/dbnt/faisp/config/SecurityConfig.java | 6 +++-- .../dbnt/faisp/controller/BaseController.java | 13 +++++++++- .../dbnt/faisp/menuMgt/MenuMgtService.java | 26 +++++++++++++++++++ .../faisp/menuMgt/mapper/MenuMgtMapper.java | 2 ++ .../com/dbnt/faisp/menuMgt/model/MenuMgt.java | 8 ++++++ .../faisp/organMgt/OrganConfigService.java | 6 +++++ .../organMgt/mapper/OrganConfigMapper.java | 11 ++++++++ .../dbnt/faisp/userInfo/model/UserInfo.java | 26 +++++++++---------- .../resources/mybatisMapper/AuthMgtMapper.xml | 2 ++ .../mybatisMapper/OrganConfigMapper.xml | 24 +++++++++++++++++ .../resources/mybatisMapper/menuMgtMapper.xml | 12 +++++++++ .../adminPage/menuMgt/menuEditModal.html | 2 +- .../resources/templates/fragments/header.html | 20 +++++++------- 14 files changed, 133 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/dbnt/faisp/organMgt/mapper/OrganConfigMapper.java create mode 100644 src/main/resources/mybatisMapper/OrganConfigMapper.xml diff --git a/src/main/java/com/dbnt/faisp/config/BaseModel.java b/src/main/java/com/dbnt/faisp/config/BaseModel.java index 20306974..5bcab6f0 100644 --- a/src/main/java/com/dbnt/faisp/config/BaseModel.java +++ b/src/main/java/com/dbnt/faisp/config/BaseModel.java @@ -5,11 +5,14 @@ import lombok.NoArgsConstructor; import lombok.Setter; import javax.persistence.Transient; +import java.util.List; @Getter @Setter @NoArgsConstructor public class BaseModel { + @Transient + private List organCdList; @Transient private Integer pageIndex=1; //요청페이지 @Transient diff --git a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java index 8ab76efc..57bb7ce9 100644 --- a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java +++ b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java @@ -65,11 +65,13 @@ public class SecurityConfig{ ).hasRole(Role.USER.name()) // USER, ADMIN 접근 허용 .antMatchers( "/codeMgt/**", - "/menuMgt/**", + "/menuMgt/**" + ).hasRole(Role.ADMIN.name()) // ADMIN만 접근 허용 + .antMatchers( "/authMgt/**", "/userMgt/**", "/organMgt/**" - ).hasRole(Role.ADMIN.name()) // ADMIN만 접근 허용 + ).hasRole(Role.SUB_ADMIN.name()) // SUB_ADMIN만 접근 허용 .antMatchers("/login").permitAll() // 로그인 페이지는 권한 없이 접근 허용 .and() // 로그인 설정 .formLogin() .loginPage("/login") // Custom login form 사용 diff --git a/src/main/java/com/dbnt/faisp/controller/BaseController.java b/src/main/java/com/dbnt/faisp/controller/BaseController.java index 4373ebe7..9e5d35a4 100644 --- a/src/main/java/com/dbnt/faisp/controller/BaseController.java +++ b/src/main/java/com/dbnt/faisp/controller/BaseController.java @@ -1,5 +1,9 @@ package com.dbnt.faisp.controller; +import com.dbnt.faisp.authMgt.AuthMgtService; +import com.dbnt.faisp.menuMgt.MenuMgtService; +import com.dbnt.faisp.menuMgt.model.MenuMgt; +import com.dbnt.faisp.organMgt.OrganConfigService; import com.dbnt.faisp.userInfo.model.UserInfo; import com.dbnt.faisp.codeMgt.CodeMgtService; import com.dbnt.faisp.codeMgt.model.CodeCatg; @@ -11,6 +15,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; +import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpSession; @@ -20,6 +25,8 @@ import javax.servlet.http.HttpSession; public class BaseController { private final CodeMgtService codeMgtService; + private final OrganConfigService organConfigService; + private final MenuMgtService menuMgtService; @GetMapping("/") public ModelAndView loginCheck(@AuthenticationPrincipal UserInfo loginUser, HttpSession session) { @@ -27,7 +34,11 @@ public class BaseController { if(loginUser == null){ mav = new ModelAndView("redirect:/login"); }else{ - session.setAttribute("commonCodeList", codeMgtService.selectCommonCodeList()); + loginUser.setOrganCdList(organConfigService.selectOrganListWhereUserOgCd(loginUser.getOgCd())); + List accessMenuList = menuMgtService.selectAccessMenuListWhereUserSeq(loginUser.getUserSeq()); + List commonCodeList = codeMgtService.selectCommonCodeList(); + session.setAttribute("menuList", menuList); + session.setAttribute("commonCodeList", commonCodeList); mav = new ModelAndView("redirect:/dashboard"); } return mav; diff --git a/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtService.java b/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtService.java index aef3a8f5..fbfaf929 100644 --- a/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtService.java +++ b/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtService.java @@ -1,5 +1,6 @@ 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; @@ -7,6 +8,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import javax.persistence.Transient; +import java.util.ArrayList; import java.util.List; @Service @@ -82,4 +84,28 @@ public class MenuMgtService { } return menuList; } + + 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); + } + } + return menuList; + } + + private boolean savedChk(String catCd1, String catCd2){ + return catCd1.equals(catCd2); + } } diff --git a/src/main/java/com/dbnt/faisp/menuMgt/mapper/MenuMgtMapper.java b/src/main/java/com/dbnt/faisp/menuMgt/mapper/MenuMgtMapper.java index 2d6bc372..faa0309e 100644 --- a/src/main/java/com/dbnt/faisp/menuMgt/mapper/MenuMgtMapper.java +++ b/src/main/java/com/dbnt/faisp/menuMgt/mapper/MenuMgtMapper.java @@ -11,4 +11,6 @@ public interface MenuMgtMapper { List selectMenuMgtList(MenuMgt menuMgt); Integer selectMenuMgtListCnt(MenuMgt menuMgt); + + List selectAccessMenuListWhereUserSeq(Integer userSeq); } 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 81cb89df..e48f90cc 100644 --- a/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java +++ b/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java @@ -8,6 +8,7 @@ import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import javax.persistence.*; +import java.util.List; @Getter @Setter @@ -32,6 +33,13 @@ public class MenuMgt extends BaseModel { @Column(name = "approval_chk") private String approvalChk; + @Transient + private String menuCd; + @Transient + private String menuNm; + @Transient + private List childList; + @Transient private Integer cat1RowspanCnt; @Transient diff --git a/src/main/java/com/dbnt/faisp/organMgt/OrganConfigService.java b/src/main/java/com/dbnt/faisp/organMgt/OrganConfigService.java index 30074a20..c3a06497 100644 --- a/src/main/java/com/dbnt/faisp/organMgt/OrganConfigService.java +++ b/src/main/java/com/dbnt/faisp/organMgt/OrganConfigService.java @@ -1,5 +1,6 @@ package com.dbnt.faisp.organMgt; +import com.dbnt.faisp.organMgt.mapper.OrganConfigMapper; import com.dbnt.faisp.organMgt.model.OrganConfig; import com.dbnt.faisp.organMgt.repository.OrganConfigRepository; import lombok.RequiredArgsConstructor; @@ -11,6 +12,7 @@ import java.util.List; @RequiredArgsConstructor public class OrganConfigService { private final OrganConfigRepository organConfigRepository; + private final OrganConfigMapper organConfigMapper; public List selectSavedOrganList() { return organConfigRepository.findAll(); @@ -21,4 +23,8 @@ public class OrganConfigService { organConfigRepository.deleteByOrganType("OGC002"); return organConfigRepository.saveAll(organConfigList).size(); } + + public List selectOrganListWhereUserOgCd(String ogCd) { + return organConfigMapper.selectOrganListWhereUserOgCd(ogCd); + } } diff --git a/src/main/java/com/dbnt/faisp/organMgt/mapper/OrganConfigMapper.java b/src/main/java/com/dbnt/faisp/organMgt/mapper/OrganConfigMapper.java new file mode 100644 index 00000000..a1546548 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/organMgt/mapper/OrganConfigMapper.java @@ -0,0 +1,11 @@ +package com.dbnt.faisp.organMgt.mapper; + +import com.dbnt.faisp.menuMgt.model.MenuMgt; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface OrganConfigMapper { + List selectOrganListWhereUserOgCd(String ogCd); +} 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 7d771075..b7136a38 100644 --- a/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java +++ b/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java @@ -62,11 +62,11 @@ public class UserInfo extends BaseModel implements UserDetails{ @Override public Collection getAuthorities() { - Set roles = new HashSet<>(); - for (String role : userRole.split(",")) { - roles.add(new SimpleGrantedAuthority(role)); - } - return roles; + Set roles = new HashSet<>(); + for (String role : userRole.split(",")) { + roles.add(new SimpleGrantedAuthority(role)); + } + return roles; } @Override @@ -94,12 +94,12 @@ public class UserInfo extends BaseModel implements UserDetails{ 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 + "]"; -} + @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/resources/mybatisMapper/AuthMgtMapper.xml b/src/main/resources/mybatisMapper/AuthMgtMapper.xml index bb529ce8..ad79adc9 100644 --- a/src/main/resources/mybatisMapper/AuthMgtMapper.xml +++ b/src/main/resources/mybatisMapper/AuthMgtMapper.xml @@ -13,6 +13,7 @@ from menu_mgt a left outer join access_config b on a.menu_key = b.menu_key and b.user_seq = #{userSeq} + order by cat1_cd, cat2_cd, cat3_cd \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/OrganConfigMapper.xml b/src/main/resources/mybatisMapper/OrganConfigMapper.xml new file mode 100644 index 00000000..537ae800 --- /dev/null +++ b/src/main/resources/mybatisMapper/OrganConfigMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/menuMgtMapper.xml b/src/main/resources/mybatisMapper/menuMgtMapper.xml index 1ae796b0..f7ce4719 100644 --- a/src/main/resources/mybatisMapper/menuMgtMapper.xml +++ b/src/main/resources/mybatisMapper/menuMgtMapper.xml @@ -47,4 +47,16 @@ + + \ 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 4ff7190f..81686c2d 100644 --- a/src/main/resources/templates/adminPage/menuMgt/menuEditModal.html +++ b/src/main/resources/templates/adminPage/menuMgt/menuEditModal.html @@ -56,7 +56,7 @@
- +
diff --git a/src/main/resources/templates/fragments/header.html b/src/main/resources/templates/fragments/header.html index 523eb7a6..fda49995 100644 --- a/src/main/resources/templates/fragments/header.html +++ b/src/main/resources/templates/fragments/header.html @@ -10,20 +10,18 @@