웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
게시판의 관리자가 최고관리자의 글을 지울 수 없도록 하기
2014.08.18 08:18
주의! 이 팁은 XE1.7.5 버전 이상에서 적용되는 팁입니다. :)
게시판의 관리자 라고 하면, 어떤의미인지 모르실수도 있습니다.
해당 게시판관리자는 게시판의 설정-> 권한관리->에서 관리권한을 선택한 그룹에게 부여하여 최고관리자가 아니더라도 그 게시판의 관리권한(게시글 수정 및 삭제) 권한을 가지게 된 관리자를 뜻합니다.
스크린샷 참고.
당연히 이관리자는
http://도메인.com/admin 에 접속을 못하지요 :)
그런데, 문제점은 이 관리권한을 맡은 사람들이 최고관리 권한을 가진 사람의 게시물을 마음대로 지울 수 있게 되는 문제점도 발생됩니다. 최고관리자의 글을 일반 게시판 관리자가 삭제된다는건 좀 규칙에 어긋난다고 생각하여 저는 다음과 같이 코어를 수정했습니다.
우선 document.controller.php 파일의 588번째줄의function deleteDocument($document_srl, $is_admin = false, $isEmptyTrash = false, $oDocument = null)
함수를 수정해야합니다.
612번째줄부터, 다음 소스를 추가하세요.
$logged_info = Context::get('logged_info');
$oMemberModel = getModel('member');
$member_info = $oMemberModel->getMemberInfoByMemberSrl($oDocument->get('member_srl'));
if($member_info->is_admin == 'Y' && $logged_info->is_admin != 'Y') return new Object(-1, '최고관리자의 글을 삭제 할 수 없습니다.');
위소스는 글쓴이가 관리자인지 인식한다음, 로그인한 사람이 최고관리자일경우에만 삭제가 원활하게 이루어지도록 만들었습니다.
이렇게 한다면, 간단하게 게시판관리자가 최고관리자의 권한을 건드리지 못하게 됩니다 :)
글 수정시에는 어떻게 해야하는지 다음 팁때 적어드리도록 하겠습니다 :)
애드온으로 처리하시면 코어를 수정 안하고 가능할 것 같아요.