BOARD

팁·활용

그누보드 특정 게시판 지정 회원 글쓰기 권한 제한 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 6회 작성일 26-10-21 15:27

본문

그누보드 특정 게시판 지정 회원 글쓰기 권한 제한 방법

그누보드 게시판에서 회원 레벨 대신 특정 회원 아이디만 골라 글쓰기 권한을 제한하는 방법을 적용할 수 있도록, 여분필드 설정과 스킨 파일 수정 절차를 안내합니다.

게시판 설정 여분필드에 특정 회원 아이디 입력하기

그누보드의 기본 레벨 기반 권한 설정 방식은 특정 회원 지정이 어렵기 때문에, 게시판 설정의 여분필드를 활용하여 지정된 회원 아이디를 등록할 수 있습니다.

  1. 관리자 모드에서 [게시판 관리] 메뉴로 이동하여 대상 게시판의 [수정] 버튼을 누른 뒤, 게시판 설정 화면 하단의 여분필드 1번 항목을 찾습니다.
  2. 여분필드1번 값에 글쓰기를 허용할 회원의 아이디를 입력합니다.
  3. 여러 명의 회원을 지정할 경우 콤마(,)를 구분 값으로 사용하여 아이디를 나열합니다. (예: 1111,2222,3333,4444,5555)

이와 같이 여분필드에 아이디를 등록한 후, 게시판 스킨 파일(예: write.head.skin.php, list.skin.php, view.skin.php 등)에서 $board['bo_1'] 값을 불러와 현재 로그인한 유저의 아이디와 비교하는 방식으로 접근을 제어할 수 있습니다.

게시판 글쓰기 및 처리 페이지 접근 제어 파일 추가 방법

그누보드에서 레벨 기반 권한 설정의 한계를 보완하여 특정 게시판에 지정된 회원들만 글쓰기를 하도록 제한하려면, 게시판 스킨 폴더에 접근 제어 코드를 포함한 신규 파일을 생성해야 합니다.

1. 신규 파일 생성 및 위치

적용하고자 하는 게시판의 스킨 폴더 안에 아래 파일들을 새로 생성합니다. 수정 전 기존 스킨 파일을 반드시 백업하십시오.

  • write.head.skin.php: 글쓰기 페이지 접근을 제어할 때 추가합니다.
  • write_update.head.skin.php: 글쓰기 처리(데이터 전송) 페이지에서 우회 접근을 차단할 때 추가합니다.
  • view.head.skin.php: 글 보기 페이지까지 함께 접근을 금지하고 싶을 때 추가합니다.

2. 접근 제어 코드 추가

생성한 파일들의 내부에는 공통적으로 아래 PHP 코드를 추가하여 게시판 설정 여분필드 1번(bo_1) 값과 현재 로그인한 유저를 비교해 접근을 제어합니다.

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// 지정된 회원만 글쓰기 권한부여. 게시판 설정 여분필드 1번 값 사용
if ($board['bo_1']) {
 $arr_mbids = explode(',', trim($board['bo_1']));
 if(!$is_admin &&!in_array($member['mb_id'], $arr_mbids)) {
 alert('권한이 없습니다.');
 }
}
?>

이 설정을 적용하면 관리자는 항상 접근할 수 있으며, bo_1에 콤마로 구분되어 등록된 아이디 목록에 포함되지 않은 일반 회원이 글쓰기 페이지나 처리 페이지에 직접 접근할 경우 경고창과 함께 차단됩니다.

게시판 버튼 및 스킨 파일 수정 방법

목록 페이지와 글 보기 페이지에서 지정된 회원이 아닐 경우 글쓰기 및 답변 버튼을 숨기려면 해당 게시판 스킨 폴더 내의 list.skin.php 파일과 view.skin.php 파일을 수정합니다.

1. list.skin.php 파일 수정

목록 페이지에서 글쓰기 버튼을 숨기려면 list.skin.php 파일 상단에 아래 코드를 추가합니다.

// 지정된 회원만 글쓰기 권한부여. 게시판 설정 여분필드 1번 값 사용
if ($board['bo_1']) {
 $arr_mbids = explode(',', trim($board['bo_1']));
 if(!$is_admin &&!in_array($member['mb_id'], $arr_mbids)) {
 $write_href = '';
 }
}

2. view.skin.php 파일 수정

글 보기 페이지에서 글쓰기 및 답변쓰기 버튼을 숨기려면 view.skin.php 파일 상단에 아래 코드를 추가합니다.

// 지정된 회원만 글쓰기 권한부여. 게시판 설정 여분필드 1번 값 사용
if ($board['bo_1']) {
 $arr_mbids = explode(',', trim($board['bo_1']));
 if(!$is_admin &&!in_array($member['mb_id'], $arr_mbids)) {
 $write_href = '';
 $reply_href = '';
 }
}

글 보기 페이지 접근 금지 파일 추가 방법

글쓰기뿐만 아니라 기존에 작성된 게시글의 열람까지 특정 회원에게만 허용하도록 범위를 확장하여 글 보기 페이지 자체의 접근을 금지하고 싶을 때는 게시판 스킨 폴더에 view.head.skin.php 파일을 추가해야 합니다.

스킨 파일 생성 및 적용 위치

  • 대상 위치: 게시판 스킨 폴더
  • 추가할 파일명: view.head.skin.php

코드 내용

생성한 view.head.skin.php 파일에 아래의 코드를 추가합니다. 관리자는 항상 접근 가능하며, 게시판 설정 여분필드 bo_1에 등록되지 않은 회원이 접근할 경우 차단됩니다.

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// 지정된 회원만 글쓰기 권한부여. 게시판 설정 여분필드 1번 값 사용
if ($board['bo_1']) {
 $arr_mbids = explode(',', trim($board['bo_1']));
 if(!$is_admin &&!in_array($member['mb_id'], $arr_mbids)) {
 alert('권한이 없습니다.');
 }
}
?>

특정 게시판 지정 회원 글쓰기 권한 제한 가이드

  • 내 상황: 그누보드 게시판의 기본 레벨 기반 권한 설정 방식으로는 특정 회원들만 골라서 글쓰기를 허용하기 어려움
  • 선택 기준: 게시판 관리자 설정의 여분필드 1번(bo_1)에 허용할 회원 아이디를 콤마로 구분하여 등록하고, 스킨 파일에서 로그인 유저와 비교하여 제어
  • 다음 행동:
    1. 관리자 모드에서 대상 게시판 설정 여분필드 1번에 아이디 입력 (예: 1111,2222,3333)
    2. 스킨 폴더에 접근 제어 및 버튼 숨기기 코드(write.head.skin.php, list.skin.php, view.skin.php 등) 적용

실전 FAQ

Q. 지정된 회원이 아닐 때 글 보기나 답변쓰기도 함께 차단하려면 어떻게 하나요?

  • 예외 및 대안: 기본적으로는 글쓰기 페이지만 제한되지만, 기존 게시글 열람까지 막고 싶다면 게시판 스킨 폴더에 view.head.skin.php 파일을 추가하고 동일한 접근 제어 코드를 작성하면 됩니다. 또한 view.skin.php 상단에 $reply_href = '';를 추가하여 답변 버튼을 숨길 수 있습니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.