테스트 사이트 - 개발 중인 베타 버전입니다

그룹관리자, 게시판관리자가 레벨이 낮아도 관리자 권한부여 (2013-11-06 12:01 수정)

--------------------------------------------------------------------------
2013-11-05 18:12
논리적 취약점 및 중복되는 코드를 제거해서 다시 올렸습니다.
혹, 기존에 적용하신 분은 위 코드와 비교해서 다시 적용하시는것이 좋습니다.
--------------------------------------------------------------------------

위 링크의 강좌에서는 글자에 색상을 추가해서 보기 좋습니다.

게시판 관리자로 설정된 사람이 꼭 레벨이 낮아도 해야하는 경우가 있습니다.
아래 팁은 그런 경우 회원권한에 관계없이 게시판 관리자역할을 할 수 있게 하는 팁입니다.



1-1. bbs / board.php 71라인

// 로그인된 회원의 권한이 설정된 읽기 권한보다 작다면
if ($member[mb_level] < $board[bo_read_level])
{
if ($member[mb_id])
//alert("글을 읽을 권한이 없습니다.");
alert("글을 읽을 권한이 없습니다.", $g4[path]);
else
alert("글을 읽을 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id"));
}

를 아래와 같이 변경

// 로그인된 회원의 권한이 설정된 읽기 권한보다 작다면
if ($member['mb_id'] && ($group[gr_admin] == $member['mb_id'] || $board[bo_admin] == $member['mb_id'])) { // 해피정닷컴. 그룹&게시판관리자 권한적용 (2013-11-05 수정)
} else if ($member[mb_level] < $board[bo_read_level]) // 해피정닷컴. 그룹&게시판관리자 권한적용 (2013-11-05 수정)
{
if ($member[mb_id])
//alert("글을 읽을 권한이 없습니다.");
alert("글을 읽을 권한이 없습니다.", $g4[path]);
else
alert("글을 읽을 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id"));
}



1-2. bbs / board.php 155라인

if ($member[mb_level] < $board[bo_list_level])
{
if ($member[mb_id])
alert("목록을 볼 권한이 없습니다.", $g4[path]);
else
alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}

를 아래와 같이 변경

if ($member['mb_id'] && ($group[gr_admin] == $member['mb_id'] || $board[bo_admin] == $member['mb_id'])) { // 해피정닷컴. 그룹&게시판관리자는 권한적용 (2013-11-05 수정)
} else if ($member[mb_level] < $board[bo_list_level]) // 해피정닷컴. 그룹&게시판관리자는 권한적용 (2013-11-05 수정)
{
if ($member[mb_id])
alert("목록을 볼 권한이 없습니다.", $g4[path]);
else
alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}



1-3. bbs / board.php 219라인

if ($member[mb_level] >= $board[bo_list_level] && $board[bo_use_list_view] || empty($wr_id))
include_once ("./list.php");

를 아래와 같이 변경

if ($member[mb_level] >= $board[bo_list_level] && $board[bo_use_list_view] || empty($wr_id) || $member['mb_id'] && ($group[gr_admin] == $member['mb_id'] || $board[bo_admin] == $member['mb_id'])) // 해피정닷컴. 그룹&게시판관리자 권한적용 (2013-11-06 수정)
include_once ("./list.php");



2. bbs / list.php 153라인

if ($member[mb_level] >= $board[bo_write_level])
$write_href = "./write.php?bo_table=$bo_table";

를 아래와 같이 변경

if ($member[mb_level] >= $board[bo_write_level] || $member['mb_id'] && ($group[gr_admin] == $member['mb_id'] || $board[bo_admin] == $member['mb_id'])) // 해피정닷컴. 그룹&게시판관리자 권한적용 (2013-11-05 수정)
$write_href = "./write.php?bo_table=$bo_table";



3-1. bbs / write.php 29라인
if ($member[mb_level] < $board[bo_write_level]) {
if ($member[mb_id])
alert("글을 쓸 권한이 없습니다.");
else
alert("글을 쓸 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?$qstr&url=".urlencode("$_SERVER[PHP_SELF]?bo_table=$bo_table"));
}

를 아래와 같이 변경

if ($member['mb_id'] && ($member[mb_level] >= $board[bo_write_level] || $board[bo_admin] == $member['mb_id'])) { // 해피정닷컴. 그룹&게시판관리자 권한적용 (2013-11-05 수정)
} else if ($member[mb_level] < $board[bo_write_level]) { // 해피정닷컴. 그룹&게시판관리자 권한적용 (2013-11-05 수정)
if ($member[mb_id])
alert("글을 쓸 권한이 없습니다.");
else
alert("글을 쓸 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?$qstr&url=".urlencode("$_SERVER[PHP_SELF]?bo_table=$bo_table"));
}



3-2. bbs / write.php 54라인

if($member['mb_id'] && $write['mb_id'] == $member['mb_id'])
;
else if ($member[mb_level] < $board[bo_write_level]) {
if ($member[mb_id])
alert("글을 수정할 권한이 없습니다.");
else
alert("글을 수정할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?$qstr&url=".urlencode("$_SERVER[PHP_SELF]?bo_table=$bo_table"));
}

를 아래와 같이 변경

if($member['mb_id'] && ($write['mb_id'] == $member['mb_id'] || $group[gr_admin] == $member['mb_id'] || $board[bo_admin] == $member['mb_id'])) // 해피정닷컴. 그룹&게시판관리자 권한적용 (2013-11-05 수정)
;
else if ($member[mb_level] < $board[bo_write_level]) {
if ($member[mb_id])
alert("글을 수정할 권한이 없습니다.");
else
alert("글을 수정할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?$qstr&url=".urlencode("$_SERVER[PHP_SELF]?bo_table=$bo_table"));
}



4. bbs / write_update.php 61라인

if($w =="u" && $member['mb_id'] && $wr['mb_id'] == $member['mb_id']
;
else if ($member[mb_level] < $board[bo_write_level])
alert("글을 쓸 권한이 없습니다.");

를 아래와 같이 변경

if($w =="u" && $member['mb_id'] && ($wr['mb_id'] == $member['mb_id'] || $group[gr_admin] == $member['mb_id'] || $board[bo_admin] == $member['mb_id'])) // 해피정닷컴. 그룹&게시판관리자 권한적용 (2013-11-05 수정)
;
else if ($member[mb_level] < $board[bo_write_level]) {
alert("글을 쓸 권한이 없습니다.");



5. bbs / write_comment_update.php 27라인

if ($member[mb_level] < $board[bo_comment_level])
alert("코멘트를 쓸 권한이 없습니다.");

를 아래와 같이 변경

if ($member['mb_id'] && ($board[bo_admin] == $member['mb_id'] || $board[bo_admin] == $member['mb_id'])) { // 해피정닷컴. 그룹&게시판관리자 권한적용 (2013-11-05 수정)
} else if ($member[mb_level] < $board[bo_comment_level] // 해피정닷컴. 그룹&게시판관리자 권한적용 (2013-11-05 수정)
alert("코멘트를 쓸 권한이 없습니다.");


참고자료
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=13735
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=30935

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 5개

좋은 정보 감사합니다
나중에 필요할때 적용해볼께요^^ 감사합니다
추천 도장도 쾅!! 찍었습니다*^___^*;
감사합니다.
업체에서 그런 기능이 필요하다고 해서 정리했습니다.
유용한 정보 감사합니다.
복스리님 감사합니다. ^^
비회원일때 글쓰기 버튼이 보이는 현상이 확인되서 소스 수정했습니다.

게시글 목록

번호 제목
32610
32609
32604
32601
32587
32583
32574
32571
32558
32557
32554
32550
32532
32516
32512
32507
32490
32488
32464
32459