Add option to disable admin content protection

최고관리자의 글을 게시판 관리자가 수정/삭제하지 못하도록 하는 기능은
게시판을 위키 등 협업 용도로 사용하는 경우 불편을 유발할 수 있으므로
옵션으로 켜고 끌 수 있도록 합니다. 기본값은 수정/삭제 금지입니다.
This commit is contained in:
Kijin Sung 2021-12-30 23:55:10 +09:00
parent 9d6e54f2f6
commit 3925c24487
9 changed files with 95 additions and 36 deletions

View file

@ -863,10 +863,13 @@ class boardView extends board
}
}
$member_info = MemberModel::getMemberInfo($oDocument->get('member_srl'));
if($member_info->is_admin == 'Y' && $this->user->is_admin != 'Y')
if ($this->module_info->protect_admin_content_update !== 'N')
{
throw new Rhymix\Framework\Exception('msg_admin_document_no_modify');
$member_info = MemberModel::getMemberInfo($oDocument->get('member_srl'));
if($member_info->is_admin == 'Y' && $this->user->is_admin != 'Y')
{
throw new Rhymix\Framework\Exception('msg_admin_document_no_modify');
}
}
}
@ -1003,6 +1006,15 @@ class boardView extends board
}
}
if ($this->module_info->protect_admin_content_delete !== 'N')
{
$member_info = MemberModel::getMemberInfo($oDocument->get('member_srl'));
if($member_info->is_admin == 'Y' && $this->user->is_admin != 'Y')
{
throw new Rhymix\Framework\Exception('document.msg_document_is_admin_not_permitted');
}
}
Context::set('oDocument',$oDocument);
/**
@ -1120,7 +1132,6 @@ class boardView extends board
**/
function dispBoardModifyComment()
{
$logged_info = Context::get('logged_info');
// check grant
if(!$this->grant->write_comment)
{
@ -1170,12 +1181,16 @@ class boardView extends board
}
}
$member_info = MemberModel::getMemberInfo($oComment->member_srl);
if($member_info->is_admin == 'Y' && $logged_info->is_admin != 'Y')
$logged_info = Context::get('logged_info');
if ($this->module_info->protect_admin_content_update !== 'N' && $logged_info->is_admin !== 'Y' && $logged_info->member_srl !== $oComment->member_srl)
{
throw new Rhymix\Framework\Exception('msg_admin_comment_no_modify');
$member_info = MemberModel::getMemberInfo($oComment->member_srl);
if($member_info->is_admin === 'Y')
{
throw new Rhymix\Framework\Exception('msg_admin_comment_no_modify');
}
}
// setup the comment variables on context
Context::set('oSourceComment', CommentModel::getComment());
Context::set('oComment', $oComment);
@ -1227,6 +1242,16 @@ class boardView extends board
}
}
$logged_info = Context::get('logged_info');
if ($this->module_info->protect_admin_content_delete !== 'N' && $logged_info->is_admin !== 'Y' && $logged_info->member_srl !== $oComment->member_srl)
{
$member_info = MemberModel::getMemberInfo($oComment->member_srl);
if($member_info->is_admin === 'Y')
{
throw new Rhymix\Framework\Exception('msg_admin_comment_no_delete');
}
}
// if the comment is not existed, then back to the board content page
if(!$oComment->isExists() )
{