권한설정 기능 작업완료.
메뉴관리 결제기능여부 체크 추가.
parent
9e362320eb
commit
29a088eaba
|
|
@ -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<ApprovalConfig> selectApprovalConfigList(UserInfo userInfo) {
|
||||
return authMgtMapper.selectApprovalConfigList(userInfo);
|
||||
}
|
||||
|
||||
public void saveAuth(AuthMgt authMgt) {
|
||||
accessConfigRepository.saveAll(authMgt.getAccessConfigList());
|
||||
approvalConfigRepository.saveAll(authMgt.getApprovalConfigList());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<AccessConfig> accessConfigList;
|
||||
List<ApprovalConfig> approvalConfigList;
|
||||
}
|
||||
|
|
@ -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,6 +11,8 @@ import lombok.RequiredArgsConstructor;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
|
|
@ -38,6 +43,13 @@ public class AuthMgtController {
|
|||
return mav;
|
||||
}
|
||||
|
||||
@PostMapping("/saveAuth")
|
||||
@ResponseBody
|
||||
public String saveAuth(@RequestBody AuthMgt authMgt){
|
||||
authMgtService.saveAuth(authMgt);
|
||||
return "";
|
||||
}
|
||||
|
||||
/*@GetMapping("/menuEditModal")
|
||||
public ModelAndView menuEditModal(MenuMgt menuMgt){
|
||||
ModelAndView mav = new ModelAndView("/adminPage/menuMgt/menuEditModal");
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
<where>
|
||||
<if test='cat1Cd != null and cat1Cd != ""'>
|
||||
|
|
|
|||
|
|
@ -14,3 +14,54 @@ $(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");
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
|
@ -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()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,89 +1,100 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<div class="tab-pane fade show active" id="accessTabPanel" role="tabpanel" aria-labelledby="accessTab" tabindex="0">
|
||||
<form id="accessEditForm" action="#" method="post">
|
||||
<table class="table table-hover text-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>대분류</th>
|
||||
<th>중분류</th>
|
||||
<th>소분류</th>
|
||||
<th>관리</th>
|
||||
<th>작성</th>
|
||||
<th>조회</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr th:each="accessConfig:${userInfo.accessConfigList}">
|
||||
<th:block th:each="commonCode:${session.commonCodeList}">
|
||||
<th:block th:if="${commonCode.itemCd eq accessConfig.cat1Cd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:each="commonCode:${session.commonCodeList}">
|
||||
<th:block th:if="${commonCode.itemCd eq accessConfig.cat2Cd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:if="${#strings.isEmpty(accessConfig.cat3Cd)}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<th:block th:unless="${#strings.isEmpty(accessConfig.cat3Cd)}" th:each="commonCode:${session.commonCodeList}">
|
||||
<th:block th:if="${commonCode.itemCd eq accessConfig.cat3Cd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<td>
|
||||
<input type="radio" th:name="${#strings.concat('accessAuth',accessConfig.menuKey)}" th:checked="${'ACC003' eq accessConfig.accessAuth}" value="ACC003">
|
||||
</td>
|
||||
<td>
|
||||
<input type="radio" th:name="${#strings.concat('accessAuth',accessConfig.menuKey)}" th:checked="${'ACC002' eq accessConfig.accessAuth}" value="ACC002">
|
||||
</td>
|
||||
<td>
|
||||
<input type="radio" th:name="${#strings.concat('accessAuth',accessConfig.menuKey)}" th:checked="${'ACC001' eq accessConfig.accessAuth}" value="ACC001">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="approvalTabPanel" role="tabpanel" aria-labelledby="approvalTab" tabindex="0">
|
||||
<form id="approvalEditForm" action="#" method="post">
|
||||
<table class="table table-hover text-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>대분류</th>
|
||||
<th>중분류</th>
|
||||
<th>계장대행</th>
|
||||
<th>계장</th>
|
||||
<th>과장대행</th>
|
||||
<th>과장</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr th:each="approvalConfig:${userInfo.approvalConfigList}">
|
||||
<th:block th:each="commonCode:${session.commonCodeList}">
|
||||
<th:block th:if="${commonCode.itemCd eq approvalConfig.cat1Cd}">
|
||||
<td th:text="${commonCode.itemValue}">.</td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:each="commonCode:${session.commonCodeList}">
|
||||
<th:block th:if="${commonCode.itemCd eq approvalConfig.cat2Cd}">
|
||||
<td th:text="${commonCode.itemValue}">.</td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:each="commonCode:${session.commonCodeList}">
|
||||
<th:block th:if="${commonCode.itemCd eq approvalConfig.cat3Cd}">
|
||||
<td th:text="${commonCode.itemValue}">.</td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<input type="hidden" id="userSeq" th:value="${userInfo.userSeq}">
|
||||
<div class="tab-pane fade show active" id="accessTabPanel" role="tabpanel" aria-labelledby="accessTab" tabindex="0">
|
||||
<table class="table table-hover text-center" id="accessEditTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>대분류</th>
|
||||
<th>중분류</th>
|
||||
<th>소분류</th>
|
||||
<th>관리</th>
|
||||
<th>작성</th>
|
||||
<th>조회</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr th:each="accessConfig:${userInfo.accessConfigList}">
|
||||
<input type="hidden" class="menuKey" th:value="${accessConfig.menuKey}">
|
||||
<th:block th:each="commonCode:${session.commonCodeList}">
|
||||
<th:block th:if="${commonCode.itemCd eq accessConfig.cat1Cd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:each="commonCode:${session.commonCodeList}">
|
||||
<th:block th:if="${commonCode.itemCd eq accessConfig.cat2Cd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:if="${#strings.isEmpty(accessConfig.cat3Cd)}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<th:block th:unless="${#strings.isEmpty(accessConfig.cat3Cd)}" th:each="commonCode:${session.commonCodeList}">
|
||||
<th:block th:if="${commonCode.itemCd eq accessConfig.cat3Cd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<td class="radioTd">
|
||||
<input type="radio" th:name="${#strings.concat('accessAuth',accessConfig.menuKey)}" th:checked="${'ACC003' eq accessConfig.accessAuth}" value="ACC003">
|
||||
</td>
|
||||
<td class="radioTd">
|
||||
<input type="radio" th:name="${#strings.concat('accessAuth',accessConfig.menuKey)}" th:checked="${'ACC002' eq accessConfig.accessAuth}" value="ACC002">
|
||||
</td>
|
||||
<td class="radioTd">
|
||||
<input type="radio" th:name="${#strings.concat('accessAuth',accessConfig.menuKey)}" th:checked="${'ACC001' eq accessConfig.accessAuth}" value="ACC001">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="approvalTabPanel" role="tabpanel" aria-labelledby="approvalTab" tabindex="0">
|
||||
<table class="table table-hover text-center" id="approvalEditTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>대분류</th>
|
||||
<th>중분류</th>
|
||||
<th>소분류</th>
|
||||
<th>계장대행</th>
|
||||
<th>계장</th>
|
||||
<th>과장대행</th>
|
||||
<th>과장</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr th:each="approvalConfig:${userInfo.approvalConfigList}">
|
||||
<input type="hidden" class="menuKey" th:value="${approvalConfig.menuKey}">
|
||||
<th:block th:each="commonCode:${session.commonCodeList}">
|
||||
<th:block th:if="${commonCode.itemCd eq approvalConfig.cat1Cd}">
|
||||
<td th:text="${commonCode.itemValue}">.</td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:each="commonCode:${session.commonCodeList}">
|
||||
<th:block th:if="${commonCode.itemCd eq approvalConfig.cat2Cd}">
|
||||
<td th:text="${commonCode.itemValue}">.</td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:if="${#strings.isEmpty(approvalConfig.cat3Cd)}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<th:block th:unless="${#strings.isEmpty(approvalConfig.cat3Cd)}" th:each="commonCode:${session.commonCodeList}">
|
||||
<th:block th:if="${commonCode.itemCd eq approvalConfig.cat3Cd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<td class="radioTd">
|
||||
<input type="radio" th:name="${#strings.concat('approvalAuth',approvalConfig.menuKey)}" th:checked="${'APC004' eq approvalConfig.approvalAuth}" value="APC004">
|
||||
</td>
|
||||
<td class="radioTd">
|
||||
<input type="radio" th:name="${#strings.concat('approvalAuth',approvalConfig.menuKey)}" th:checked="${'APC003' eq approvalConfig.approvalAuth}" value="APC003">
|
||||
</td>
|
||||
<td class="radioTd">
|
||||
<input type="radio" th:name="${#strings.concat('approvalAuth',approvalConfig.menuKey)}" th:checked="${'APC002' eq approvalConfig.approvalAuth}" value="APC002">
|
||||
</td>
|
||||
<td class="radioTd">
|
||||
<input type="radio" th:name="${#strings.concat('approvalAuth',approvalConfig.menuKey)}" th:checked="${'APC001' eq approvalConfig.approvalAuth}" value="APC001">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</html>
|
||||
|
|
@ -55,6 +55,12 @@
|
|||
<input type="text" class="form-control form-control-sm" id="menuUrl" name="menuUrl" th:value="${menuMgt.menuUrl}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="menuUrl" class="col-sm-4 col-form-label col-form-label-sm text-center">결제기능</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="checkbox" id="approvalChk" name="approvalChk" value="T" th:checked="${menuMgt.approvalChk eq 'T'}">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer justify-content-between">
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@
|
|||
<input type="hidden" class="cat2Cd" th:value="${menuMgt.cat2Cd}">
|
||||
<input type="hidden" class="cat3Cd" th:value="${menuMgt.cat3Cd}">
|
||||
<input type="hidden" class="menuUrl" th:value="${menuMgt.menuUrl}">
|
||||
<input type="hidden" class="approvalChk" th:value="${menuMgt.approvalChk}">
|
||||
<td>
|
||||
<input type="checkbox" class="menuCheckBox" th:value="${menuMgt.menuKey}">
|
||||
</td>
|
||||
|
|
|
|||
Loading…
Reference in New Issue