|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
|
|
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
|
|
|
|
<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp" %>
|
|
|
|
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
|
|
|
|
|
|
|
|
@ -8,34 +8,40 @@
|
|
|
|
|
margin: 2px 0 0 5px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
div.popup, div.popup_inner{
|
|
|
|
|
div.popup, div.popup_inner {
|
|
|
|
|
min-width: 680px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table li {
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
}
|
|
|
|
|
table li:not(.separator) span{
|
|
|
|
|
|
|
|
|
|
table li:not(.separator) span {
|
|
|
|
|
border: solid #dddddd 1px;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
padding: 3px;
|
|
|
|
|
margin: 10px 2px 10px 0px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#authorRescue {
|
|
|
|
|
white-space: normal;
|
|
|
|
|
word-break: break-word;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#authorRescue li, #authorList li {
|
|
|
|
|
/* 가로 정렬 */
|
|
|
|
|
margin: 10px 0 10px 0;
|
|
|
|
|
padding: 0 0 0 0;
|
|
|
|
|
border : 0;
|
|
|
|
|
border: 0;
|
|
|
|
|
float: left;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table span {
|
|
|
|
|
/* border: solid 1px gray; */
|
|
|
|
|
padding: 2px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table.tbl03 th {
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
font-size: 100%;
|
|
|
|
@ -46,7 +52,7 @@
|
|
|
|
|
<validator:javascript formName="authHierarchyManage" staticJavascript="false" xhtml="true" cdata="false"/>
|
|
|
|
|
|
|
|
|
|
<div class="popup">
|
|
|
|
|
<div class="popup_inner">
|
|
|
|
|
<div class="popup_inner_02">
|
|
|
|
|
<p class="pop_title">권한 계층 설정</p>
|
|
|
|
|
|
|
|
|
|
<div>
|
|
|
|
@ -57,7 +63,9 @@
|
|
|
|
|
<li>: 권한계층은 부모와 자녀로 이루어 집니다.</li>
|
|
|
|
|
<li>: 상속받은 부모의 Role이 많을 수록 "상위 권한"이 되며, 적을 수록 "하위 권한"이 됩니다.</li>
|
|
|
|
|
<li>: 자녀는 부모에게 부여된 모든 Role에 대해 접근이 가능 합니다.</li>
|
|
|
|
|
<li>: 권한 계층에서 부모를 제외 할 시 해당 부모의 Role이 자녀에게도 동일하게 부여되어 있지 않다면 자녀는 접근이 불가 하기에 계층 구조에서 제외 시에는 주의가 필요 합니다.</li>
|
|
|
|
|
<li>: 권한 계층에서 부모를 제외 할 시 해당 부모의 Role이 자녀에게도 동일하게 부여되어 있지 않다면 자녀는 접근이 불가 하기에 계층 구조에서 제외 시에는 주의가
|
|
|
|
|
필요 합니다.
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
@ -74,14 +82,15 @@
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td id="authorRescue" class="connectWith">
|
|
|
|
|
<c:set var="strAuthorRescueCode" value="${fn:trim(authHierarchyManage.authorRescueCode) }" />
|
|
|
|
|
<c:set var="arrAuthorCode" value="${fn:split(strAuthorRescueCode, '>') }" />
|
|
|
|
|
<c:set var="strAuthorRescueCode" value="${fn:trim(authHierarchyManage.authorRescueCode) }"/>
|
|
|
|
|
<c:set var="arrAuthorCode" value="${fn:split(strAuthorRescueCode, '>') }"/>
|
|
|
|
|
<c:forEach var="row" items="${arrAuthorCode }" varStatus="status">
|
|
|
|
|
<c:set var="arrSilbingAutorCode" value="${fn:split(row, ',') }" />
|
|
|
|
|
<c:set var="arrSilbingAutorCode" value="${fn:split(row, ',') }"/>
|
|
|
|
|
<c:forEach var="authorCode" items="${arrSilbingAutorCode }">
|
|
|
|
|
<li>
|
|
|
|
|
<span><c:out value="${mAuthorInfo[fn:trim(authorCode)] }"/></span>
|
|
|
|
|
<input type="hidden" id="authorCode" value="<c:out value="${fn:trim(authorCode) }"/>" />
|
|
|
|
|
<input type="hidden" id="authorCode"
|
|
|
|
|
value="<c:out value="${fn:trim(authorCode) }"/>"/>
|
|
|
|
|
</li>
|
|
|
|
|
</c:forEach>
|
|
|
|
|
|
|
|
|
@ -115,7 +124,8 @@
|
|
|
|
|
<li>
|
|
|
|
|
<span>
|
|
|
|
|
<c:out value="${row.author_nm }"/>
|
|
|
|
|
<input type="hidden" id="authorCode" value="<c:out value="${row.author_code }"/>" />
|
|
|
|
|
<input type="hidden" id="authorCode"
|
|
|
|
|
value="<c:out value="${row.author_code }"/>"/>
|
|
|
|
|
</span>
|
|
|
|
|
</li>
|
|
|
|
|
</c:forEach>
|
|
|
|
@ -125,8 +135,8 @@
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</form:form>
|
|
|
|
|
<div class="popup_btn">
|
|
|
|
|
<span class="flr align_center">
|
|
|
|
|
<div class="popup_btn_02">
|
|
|
|
|
<span>
|
|
|
|
|
<a href="#" class="btn blue" id="btnRegist">저장</a>
|
|
|
|
|
<a href="#" class="btn gray" id="btnInit">원래대로</a>
|
|
|
|
|
<a href="#" class="btn red" id="btnReload">설정정보적용</a>
|
|
|
|
@ -151,59 +161,59 @@
|
|
|
|
|
const fnBiz = {
|
|
|
|
|
save: () => {
|
|
|
|
|
let data = $(document.authHierarchyManage).serialize();
|
|
|
|
|
if(initArrAuthorCode === data){
|
|
|
|
|
if (initArrAuthorCode === data) {
|
|
|
|
|
alert('변경된 내역이 없습니다.');
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(confirm("저장 하시겠습니까?")) {
|
|
|
|
|
if (confirm("저장 하시겠습니까?")) {
|
|
|
|
|
cmmAjax({
|
|
|
|
|
url: '<c:url value="/framework/biz/mng/auth/saveAuthHierarchy.do"/>'
|
|
|
|
|
, data: data
|
|
|
|
|
,success: () => {
|
|
|
|
|
, success: () => {
|
|
|
|
|
//$('#btnReload').css('display', 'inline-block');
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
,init: () => {
|
|
|
|
|
, init: () => {
|
|
|
|
|
window.location = '<c:url value="/framework/biz/mng/auth/mngAuthHierarchyMgtPopup.do"/>'
|
|
|
|
|
}
|
|
|
|
|
,reload: () => {
|
|
|
|
|
, reload: () => {
|
|
|
|
|
const msg = [];
|
|
|
|
|
msg.push('설정하신 정보를 적용 하시겠습니까?');
|
|
|
|
|
msg.push('적용된 설정은 사이트를 재접속 하셔야 동작 합니다.');
|
|
|
|
|
msg.push('※"설정정보 적용"을 하지 않을 시 저장하신 정보는 서버가 재기동 되기전까진 반영되지 않습니다.');
|
|
|
|
|
if(confirm(msg.join('\n'))) {
|
|
|
|
|
if (confirm(msg.join('\n'))) {
|
|
|
|
|
cmmAjax({
|
|
|
|
|
url: '<c:url value="/framework/biz/mng/auth/reloadAuthHierarchy.do"/>'
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
,setParam : function(){
|
|
|
|
|
, setParam: function () {
|
|
|
|
|
let i = 0;
|
|
|
|
|
const totCnt = $('#authorRescue li').length;
|
|
|
|
|
let sb = [];
|
|
|
|
|
const arrAuthorCode = [];
|
|
|
|
|
|
|
|
|
|
$('#authorRescue li').each(function(){
|
|
|
|
|
if($(this).hasClass('separator')){ //구분자 일때
|
|
|
|
|
$('#authorRescue li').each(function () {
|
|
|
|
|
if ($(this).hasClass('separator')) { //구분자 일때
|
|
|
|
|
//배열에 담기
|
|
|
|
|
if(sb.length>0)
|
|
|
|
|
if (sb.length > 0)
|
|
|
|
|
// arrAuthorCode.push(sb);
|
|
|
|
|
arrAuthorCode.push(sb.join(';'));
|
|
|
|
|
|
|
|
|
|
//StringBuffer 초기화
|
|
|
|
|
sb = [];
|
|
|
|
|
|
|
|
|
|
}else{ //구분자가 아닐때
|
|
|
|
|
} else { //구분자가 아닐때
|
|
|
|
|
sb.push($(this).find('#authorCode').val());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//마지막 요소
|
|
|
|
|
if(i == totCnt-1){
|
|
|
|
|
if (i == totCnt - 1) {
|
|
|
|
|
//배열에 담기
|
|
|
|
|
if(sb.length>0)
|
|
|
|
|
if (sb.length > 0)
|
|
|
|
|
arrAuthorCode.push(sb);
|
|
|
|
|
}
|
|
|
|
|
i++;
|
|
|
|
@ -213,7 +223,7 @@
|
|
|
|
|
//Elements 삭제
|
|
|
|
|
$(frm).find('input[name="authorCode"]').remove();
|
|
|
|
|
//Elements 생성
|
|
|
|
|
for(let i = 0; i<arrAuthorCode.length; i++){
|
|
|
|
|
for (let i = 0; i < arrAuthorCode.length; i++) {
|
|
|
|
|
const param = document.createElement('input');
|
|
|
|
|
param.setAttribute('type', 'hidden');
|
|
|
|
|
param.setAttribute('name', 'authorCode');
|
|
|
|
@ -221,17 +231,17 @@
|
|
|
|
|
frm.appendChild(param);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
,validate: () => {
|
|
|
|
|
if(orgData === $('form').serialize()){
|
|
|
|
|
, validate: () => {
|
|
|
|
|
if (orgData === $('form').serialize()) {
|
|
|
|
|
alert('변경된 내용이 없습니다.');
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if($('#groupId').val() === ''){
|
|
|
|
|
if ($('#groupId').val() === '') {
|
|
|
|
|
alert('[권한그룹 ID]는 필수 입니다.');
|
|
|
|
|
$('#authorCode').focus();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if($('#groupNm').val() === ''){
|
|
|
|
|
if ($('#groupNm').val() === '') {
|
|
|
|
|
alert('[권한그룹 명]은 필수 입니다.');
|
|
|
|
|
$('#authorNm').focus();
|
|
|
|
|
return false;
|
|
|
|
@ -263,7 +273,7 @@
|
|
|
|
|
//sortable 적용
|
|
|
|
|
$('.connectWith').sortable({
|
|
|
|
|
connectWith: '.connectWith'
|
|
|
|
|
,stop : function(){
|
|
|
|
|
, stop: function () {
|
|
|
|
|
//구분자 생성
|
|
|
|
|
$('#authorList li.separator').remove();
|
|
|
|
|
$('#authorList').prepend('<li class="separator"><span style="font-weight: bold"> > </span></li>');
|
|
|
|
@ -277,7 +287,7 @@
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
* initialize
|
|
|
|
|
**************************************************************************/
|
|
|
|
|
$(document).ready(function(){
|
|
|
|
|
$(document).ready(function () {
|
|
|
|
|
fnBiz.setParam();
|
|
|
|
|
initArrAuthorCode = $(document.authHierarchyManage).serialize();
|
|
|
|
|
orgData = $('form').serialize();
|
|
|
|
|