diff --git a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java index db57bdc6..1e3f5382 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/**").hasRole(Role.ADMIN.name()) // ADMIN만 접근 허용 + .antMatchers("/codeMgt/**", "/menuMgt/**", "/authMgt/**").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/AuthMgtController.java b/src/main/java/com/dbnt/faisp/controller/AuthMgtController.java index 5223eae1..e721281e 100644 --- a/src/main/java/com/dbnt/faisp/controller/AuthMgtController.java +++ b/src/main/java/com/dbnt/faisp/controller/AuthMgtController.java @@ -2,6 +2,8 @@ package com.dbnt.faisp.controller; 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 org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; @@ -15,15 +17,25 @@ import java.util.List; public class AuthMgtController { private final MenuMgtService menuMgtService; + private final UserInfoService userInfoService; @GetMapping("/authMgtPage") - public ModelAndView menuMgtPage(MenuMgt menuMgt) { + public ModelAndView menuMgtPage(UserInfo userInfo) { ModelAndView mav = new ModelAndView("/adminPage/authMgt/authMgt"); -// menuMgt.setQueryInfo(); -// mav.addObject("menuMgtList", menuMgtService.selectMenuMgtList(menuMgt)); -// menuMgt.setContentCnt(menuMgtService.selectMenuMgtListCnt(menuMgt)); -// menuMgt.setPaginationInfo(); -// mav.addObject("searchParams", menuMgt); + userInfo.setQueryInfo(); + mav.addObject("userInfoList", userInfoService.selectUserInfoList(userInfo)); + userInfo.setContentCnt(userInfoService.selectUserInfoListCnt(userInfo)); + userInfo.setPaginationInfo(); + mav.addObject("searchParams", userInfo); + return mav; + } + + @GetMapping("/authEditModal") + public ModelAndView menuEditModal(UserInfo userInfo){ + ModelAndView mav = new ModelAndView("/adminPage/authMgt/authEditModal"); + userInfo.setAccessConfigList(null);// 기능구현 예정 + userInfo.setApprovalConfigList(null);// 기능구현 예정 + mav.addObject(userInfo); return mav; } diff --git a/src/main/java/com/dbnt/faisp/userInfo/UserInfoService.java b/src/main/java/com/dbnt/faisp/userInfo/UserInfoService.java index 6876e3b8..41f2fe9d 100644 --- a/src/main/java/com/dbnt/faisp/userInfo/UserInfoService.java +++ b/src/main/java/com/dbnt/faisp/userInfo/UserInfoService.java @@ -12,6 +12,7 @@ import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDateTime; import java.util.List; @Service @@ -27,20 +28,15 @@ public class UserInfoService implements UserDetailsService { return "userIdDuplication"; } userInfo.setUserRole(Role.USER.getValue()); - userInfo.setUserStatus("ST002"); + userInfo.setUserStatus("USC002"); userInfo.setPassword(convertPassword(userInfo.getPassword())); + userInfo.setWrtDt(LocalDateTime.now()); return userInfoRepository.save(userInfo).getUserId(); } @Transactional public String updateUserInfo(UserInfo userInfo){ - UserInfo targetUserInfo = userInfoRepository.findById(userInfo.getUserSeq()).orElse(null); - if(userInfo.getPassword() != null){ - targetUserInfo.setPassword(convertPassword(userInfo.getPassword())); - } - targetUserInfo.setName(userInfo.getName()); - targetUserInfo.setUserRole(userInfo.getUserRole()); - targetUserInfo.setUserStatus(userInfo.getUserStatus()); - return targetUserInfo.getUserId(); + userInfo.setPassword(convertPassword(userInfo.getPassword())); + return userInfoRepository.save(userInfo).getUserId(); } public String updatePassword(UserInfo loginUser, UserInfo modifyInfo){ @@ -72,10 +68,4 @@ public class UserInfoService implements UserDetailsService { return userInfoMapper.selectUserInfoListCnt(userInfo); } - public UserInfo selectUserInfoByUserSeq(UserInfo userInfo) { - return userInfoRepository.findById(userInfo.getUserSeq()).orElse(null); - } - public UserInfo selectUserInfoByUserId(String userId) { - return userInfoRepository.findByUserId(userId).orElse(null); - } } 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 ceaf2d98..bfb18b6b 100644 --- a/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java +++ b/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java @@ -1,5 +1,7 @@ package com.dbnt.faisp.userInfo.model; +import com.dbnt.faisp.authMgt.model.AccessConfig; +import com.dbnt.faisp.authMgt.model.ApprovalConfig; import com.dbnt.faisp.config.BaseModel; import lombok.Getter; import lombok.NoArgsConstructor; @@ -11,8 +13,10 @@ import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import javax.persistence.*; +import java.time.LocalDateTime; import java.util.Collection; import java.util.HashSet; +import java.util.List; import java.util.Set; @Getter @@ -31,12 +35,18 @@ public class UserInfo extends BaseModel implements UserDetails{ private String userId; @Column(name = "passwd") private String password; - @Column(name = "name") - private String name; + @Column(name = "user_nm") + private String userNm; + @Column(name = "og_cd") + private String ogCd; + @Column(name = "ofc_cd") + private String ofcCd; @Column(name = "user_role") private String userRole; @Column(name = "user_status") private String userStatus; + @Column(name = "wrt_dt") + private LocalDateTime wrtDt; @Transient private String modifyPassword; @@ -45,6 +55,11 @@ public class UserInfo extends BaseModel implements UserDetails{ @Transient private String departmentName; + @Transient + private List accessConfigList; + @Transient + private List approvalConfigList; + @Override public Collection getAuthorities() { Set roles = new HashSet<>(); @@ -76,6 +91,6 @@ public class UserInfo extends BaseModel implements UserDetails{ @Override public boolean isEnabled() { - return userStatus.equals("ST003"); + return userStatus.equals("USC003"); } } diff --git a/src/main/resources/mybatisMapper/UserInfoMapper.xml b/src/main/resources/mybatisMapper/UserInfoMapper.xml index 9e76c4ff..9ded99b3 100644 --- a/src/main/resources/mybatisMapper/UserInfoMapper.xml +++ b/src/main/resources/mybatisMapper/UserInfoMapper.xml @@ -5,65 +5,48 @@ \ No newline at end of file diff --git a/src/main/resources/static/js/authMgt/authMgt.js b/src/main/resources/static/js/authMgt/authMgt.js new file mode 100644 index 00000000..0e0df23b --- /dev/null +++ b/src/main/resources/static/js/authMgt/authMgt.js @@ -0,0 +1,16 @@ + +$(document).on('click', '.userInfoTr', function (){ + $.ajax({ + url: '/authMgt/authEditModal', + data: {userSeq: Number($(this).find(".userSeq").val())}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#configInfo").empty().append(html) + $("#authEditModal").modal('show'); + }, + error:function(){ + + } + }); +}) \ No newline at end of file diff --git a/src/main/resources/static/js/login/login.js b/src/main/resources/static/js/login/login.js index e562fffd..034b9592 100644 --- a/src/main/resources/static/js/login/login.js +++ b/src/main/resources/static/js/login/login.js @@ -35,7 +35,7 @@ function valueCheck(form){ const userId = targetForm.find("#userId").val(); const password = targetForm.find("#modalPassword"); const passwordConfirm = targetForm.find("#passwordConfirm"); - const name = targetForm.find("#name").val() + const userNm = targetForm.find("#userNm").val() let returnFlag = true; if(!userId){ @@ -56,7 +56,7 @@ function valueCheck(form){ alert("비밀번호 확인을 입력해주세요."); returnFlag = false; } - if(!name){ + if(!userNm){ alert("이름 입력해주세요."); returnFlag = false; } diff --git a/src/main/resources/templates/adminPage/authMgt/authEditModal.html b/src/main/resources/templates/adminPage/authMgt/authEditModal.html new file mode 100644 index 00000000..dd2e6d0a --- /dev/null +++ b/src/main/resources/templates/adminPage/authMgt/authEditModal.html @@ -0,0 +1,149 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
대분류중분류소분류관리작성조회
......
......
......
......
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
대분류중분류계장대행계장과장대행과장
......
......
......
......
+
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/adminPage/authMgt/authMgt.html b/src/main/resources/templates/adminPage/authMgt/authMgt.html index 5071e4ca..fed91c1a 100644 --- a/src/main/resources/templates/adminPage/authMgt/authMgt.html +++ b/src/main/resources/templates/adminPage/authMgt/authMgt.html @@ -3,17 +3,17 @@ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{layout/layout}"> - +

권한 설정

- +
-