fix: 관리자 게시판 등록 권한 및 URL 표시 개선

This commit is contained in:
이주일
2026-07-17 02:24:19 +09:00
parent 15f299d842
commit 1c48d65b7b
3 changed files with 56 additions and 27 deletions

View File

@@ -393,6 +393,7 @@ public class BOBbsService {
if (vo.getBbscttRedngAuthorDvCd() != null && "01".equals(vo.getBbscttRedngAuthorDvCd())) {
vo.setBbscttRedngAuthorDvCd("[all]");
} else if (vo.getBbscttRedngAuthorDvCd() != null && "02".equals(vo.getBbscttRedngAuthorDvCd())) {
validateMemberGradeSelection(vo.getBbscttRedngAuthorDvCd_c(), "게시판 읽기");
StringBuilder sb = new StringBuilder();
for (String mbrInnb : vo.getBbscttRedngAuthorDvCd_c()) {
@@ -431,6 +432,8 @@ public class BOBbsService {
if (vo.getBbscttRegistAuthorDvCd() != null && "01".equals(vo.getBbscttRegistAuthorDvCd())) {
vo.setBbscttRegistAuthorDvCd("[all]");
} else if (vo.getBbscttRegistAuthorDvCd() != null && "02".equals(vo.getBbscttRegistAuthorDvCd())) {
validateMemberGradeSelection(vo.getBbscttRegistAuthorDvCd_c(), "게시판 쓰기");
StringBuilder sb = new StringBuilder();
for (String mbrInnb : vo.getBbscttRegistAuthorDvCd_c()) {
@@ -465,6 +468,8 @@ public class BOBbsService {
if (vo.getAnswRegistAuthorDvCd() != null && "01".equals(vo.getAnswRegistAuthorDvCd())) {
vo.setAnswRegistAuthorDvCd("[all]");
} else if (vo.getAnswRegistAuthorDvCd() != null && "02".equals(vo.getAnswRegistAuthorDvCd())) {
validateMemberGradeSelection(vo.getAnswRegistAuthorDvCd_c(), "답글 쓰기");
StringBuilder sb = new StringBuilder();
for (String mbrInnb : vo.getAnswRegistAuthorDvCd_c()) {
@@ -499,6 +504,8 @@ public class BOBbsService {
if (vo.getCmRegistAuthorDvCd() != null && "01".equals(vo.getCmRegistAuthorDvCd())) {
vo.setCmRegistAuthorDvCd("[all]");
} else if (vo.getCmRegistAuthorDvCd() != null && "02".equals(vo.getCmRegistAuthorDvCd())) {
validateMemberGradeSelection(vo.getCmRegistAuthorDvCd_c(), "댓글 쓰기");
StringBuilder sb = new StringBuilder();
for (String mbrInnb : vo.getCmRegistAuthorDvCd_c()) {
@@ -685,15 +692,21 @@ public class BOBbsService {
msgMap.put("bbsid", bbsId);
} catch (WnbtRestException wre){
throw new WnbtRestException(wre.getMessage());
throw wre;
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new WnbtRestException("게시판 등록 중 오류가 발생했습니다.", e);
}
return msgMap;
}
private void validateMemberGradeSelection(String[] memberGradeArr, String authorizationName) {
if (memberGradeArr == null || memberGradeArr.length == 0) {
throw new WnbtRestException(authorizationName + " 권한의 회원등급을 선택해 주세요.");
}
}
/**
* 게시판 삭제

View File

@@ -948,7 +948,8 @@
<input type="radio" id="write${cgn024.cd }"
name="bbscttRegistAuthorDvCd"
value="${cgn024.cd }" ${attrCheck }
onclick="fn_click_check('bbscttRegistAuthorDvCd', 'all');">
onclick="fn_change_event('bbscttRegistAuthorDvCd');
fn_click_check('bbscttRegistAuthorDvCd', 'all');">
<label for="write${cgn024.cd }"><c:out
value="${cgn024.cdNm }"/></label>
</div>
@@ -2042,13 +2043,25 @@
url : url,
data : paramsArray,
success : function(data) {
const result = JSON.parse(data.resBody.result);
const bbsId = result.bbsid;
if (result.message !== 'success' || !bbsId) {
alert('게시판 등록에 실패했습니다. 다시 시도해 주세요.');
return;
}
alert('<spring:message code="success.common.insert"/>');
const bbsId = JSON.parse(data.resBody.result).bbsid;
<%-- fn_move_dtlupdt(bbsId); --%>
$('#backUpData').find('[name=bbsId]').val(JSON.parse(data.resBody.result).bbsid);
$('#backUpData').find('[name=bbsId]').val(bbsId);
$('#backUpData').find('[name=pageDv]').val('I');
$('#backUpData').attr('action', '<c:url value="/mngr/bbs/bbsmngr/selectBbsDtlUpdtForm"/>');
$('#backUpData').submit();
},
error : function(data) {
const message = data.responseJSON
&& data.responseJSON.resBody
&& data.responseJSON.resBody.result;
alert(message || '게시판 등록 중 오류가 발생했습니다.');
}
});
}
@@ -2078,4 +2091,4 @@
}
</script>
</html>
</html>

View File

@@ -21,36 +21,36 @@
$(document).ready(function () {
console.log('urlval 태그' + $('.urlVal').length);
const pcDomnAdres = document.querySelector('.header__logo').getAttribute('data-pcurl');
const popup = document.getElementById('board-list-detail');
let urlVal = '';
const bbscttInnb = document.getElementsByName("script_bbscttInnb")[0]?.value || "";
const bbsId = document.getElementsByName("bbsId")[0]?.value || "";
const bbsTyCd = document.getElementsByName("bbsTyCd")[0]?.value || "";
const sopmalCd = document.getElementsByName("sopmalCd")[0]?.value || "";
const bbsUseAt = document.getElementsByName("bbsUseAt")[0]?.value || "";
const npayBbscttSnb = document.getElementsByName("npayBbscttSnb")[0]?.value || "";
const bbscttInnb = popup.querySelector('[name="script_bbscttInnb"]')?.value || "";
const bbsId = popup.querySelector('[name="bbsId"]')?.value || "";
const bbsTyCd = popup.querySelector('[name="bbsTyCd"]')?.value || "";
const sopmalCd = popup.querySelector('[name="sopmalCd"]')?.value || "";
const bbsUseAt = popup.querySelector('[name="bbsUseAt"]')?.value || "";
const npayBbscttSnb = popup.querySelector('[name="npayBbscttSnb"]')?.value || "";
console.log("bbscttInnb:", bbscttInnb);
console.log("bbsId:", bbsId);
console.log("bbsTyCd:", bbsTyCd);
console.log("sopmalCd:", sopmalCd);
if(bbsUseAt == 'Y' && (npayBbscttSnb === null || npayBbscttSnb === undefined || npayBbscttSnb === '')) {
if (bbsTyCd === '03' || bbsId == 'main_event' || bbsId == 'largeLMS_event') {
if (bbsTyCd === '03' || bbsId == 'main_event') {
urlVal = pcDomnAdres + '/sopmal/csc/selectBbscttAuth?authDv=CM&bbsTyCd=03&reqUrl=subPage&bbsId=' + bbsId + '&bbscttInnb=' + bbscttInnb;
} else {
urlVal = '/'+sopmalCd+'/extra/bbs/selectSMSEventPage?bbscttInnb=' + bbscttInnb;
}
if (bbsUseAt === 'Y' && !npayBbscttSnb) {
if (bbsId === 'largeLMS_event') {
urlVal = '/' + sopmalCd + '/extra/bbs/selectSMSEventPage?bbscttInnb=' + bbscttInnb;
} else {
urlVal = '/sopmal/csc/selectBbscttAuth?authDv=CM&reqUrl=detail&bbsTyCd='
+ encodeURIComponent(bbsTyCd)
+ '&bbsId=' + encodeURIComponent(bbsId)
+ '&bbscttInnb=' + encodeURIComponent(bbscttInnb);
}
}
console.log(' urlVal 실행됨: ' + urlVal);
console.log(' pcDomnAdres 실행됨: ' + pcDomnAdres);
$('.urlVal').val(urlVal);
popup.querySelector('.urlVal').value = urlVal;
});
@@ -88,15 +88,18 @@
<input type="hidden" id="bbsId" name="bbsId" value="<c:out value='${bbsInfo.bbsId}' />" />
<div class="form-control-container mb-10">
<div class="left">
<c:if test="${bbscttInfo.useAt eq 'Y' && empty bbscttInfo.npayBbscttSnb}">
<div class="input-container inline-block mr-5">
<label class="visually-hidden" for="url">사용자 페이지 URL</label>
<input type="text" id="url" class="input-text urlVal" readonly style="width: 500px;"/>
</div>
<button type="button" class="btn xsm primary" onclick="fn_copy_url();">URL 복사</button>
</c:if>
</div>
<div class="center">
</div>
<div class="right">
<c:if test="${bbscttInfo.useAt eq 'Y' && empty bbscttInfo.npayBbscttSnb}">
<c:if test="${(bbsInfo.bbsTyCd eq '03') || (bbsInfo.bbsId eq 'main_event') || (bbsInfo.bbsId eq 'largeLMS_event')}">
<input type="text" id="url" class="urlVal" style="display: none;"/>
<button type="button" class="btn xsm primary" onclick="fn_copy_url();">url복사</button>
</c:if>
<button type="button" class="btn xsm primary outline" onclick="fn_select_bbsctt_update_pop('<c:out
value="${ bbscttInfo.bbscttInnb }"/>','dtlPop');"><spring:message
code="button.update"/></button>
@@ -699,4 +702,4 @@
<div class="modal-footer">
<a id="btnCloseModal" rel="modal:close" class="btn primary" style="cursor:pointer">확인</a>
</div>
</div>
</div>