특정 게시판 접근 권한 설정
본문
레벨 3이 접근할 수 있는 레벨3 게시판이 있고,
레벨 4, 레벨 5가 접근할 수 있는 각 레벨4, 레벨5 게시판이 있습니다.
접근이 가능한 테이블 명은 as_3, as_4, as_5 인데,
3레벨은 as_3만, 4레벨은 as_4만, 5레벨은 as_5만 접근하게 해야하는데,
현 그느부도 숫자 권한 체계상
레벨5가 레벨 3,4 게시판에 접근이 가능하게 되어 있습니다.
그래서 list와 view, write 스킨에서 if문을 사용하여 사용자를 필터링 해주려는데
문제는 as_3 게시판을 레벨 5회원이 접근하지 못하도록
if문으로 짜서 접근 권한을
if($bo_table == "AS_3")
{
if($member['mb_level'] == 3 || $member['mb_level'] == 9 || $member['mb_level'] == 10)
return true;
else
{
alert('잘못된 접근입니다');
location.replace("/");
}
}
이렇게 막았습니다.
여기에서 발생하는 문제점은 url이 AS_3 으로 들어갔을때는 접근권한이 정상적으로 차단이 되는데
botable=As_3 또는 bo_table=as_3 처럼 대문자와 소문자가 하나라도 섞일 경우, 필터링이 작동하지 않고 열람이 가능하도록 되어버립니다.
간단하게 요약하여
as_3 게시판에는 레벨 3회원들만 접근하고, 4, 5레벨 회원은 접근 불가능하도록,(관리자 및 어드민(레벨 9, 10은 접근 가능)
as_4 게시판에는 5레벨 회원은 접근이 블가능토록(list, view, write) 구문을 짜야하는데
일일이 if문 조건문을 쓰는게 아닌 위의구문 외 뭔가 더 심플하고 스마트판 방법으로
효과적으로 필터링 할 수 있는 로직이 없을까 고민하다가
고수분들께 도움을 구하고자합니다.
어떻게 짜면 좋을까요..
일일이 if문으로 대소문자에 관한 조건들을 일일이 다 달아주고 list, view, write에 일일이 기입하는 방법 외에는 정말 없는걸까요...?
답변 1
/bbs/board.php 파일에서 수정하면 되지 않을까요
예를 들어 목록 보기 권한이 원본에는 이렇게 되어 있는데
if ($member['mb_level'] < $board['bo_list_level']) {
이렇게 수정. (9레벨 이상이 아니거나 접근 가능 레벨하고 다르면 열람 금지)
if ($member['mb_level'] < 9 && $member['mb_level'] != $board['bo_list_level']) {
글 읽기 부분은 여기를 수정.
if ($member['mb_level'] < $board['bo_read_level']) {
쓰기는 write.php 에 있겠네요.