BOARD

팁·활용

그누보드 회원 레벨 10단계 초과 확장 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 10회 작성일 26-10-06 17:52

본문

그누보드 회원 레벨 10단계 초과 확장 방법

그누보드 기본 회원 레벨을 10단계에서 20단계 등 원하는 수준으로 확장하여 운영하는 설정 방법을 안내합니다.

그누보드 회원 레벨 확장 방법

그누보드의 기본 회원 레벨은 1~10단계로 제한되어 있어 이를 초과하여 확장하려면 관련 라이브러리 함수, 설정 파일, 그리고 관리자 폼 파일을 순서대로 수정해야 합니다. 예제는 20단계 확장을 기준으로 설명합니다.

1. adm/admin.lib.php 파일 수정

회원 권한을 셀렉트 형식으로 불러오는 함수의 최대 레벨 범위를 변경합니다.

  • 파일 경로: adm/admin.lib.php
  • 수정 내용: $end_id=10 부분을 원하는 최대 레벨값으로 수정합니다.
function get_member_level_select($name, $start_id=0, $end_id=20, $selected="", $event="")

2. extend/user.config.php 파일 설정 (최고관리자 레벨 상향)

최고관리자의 레벨을 새로 설정한 최대 레벨로 변경해야 접근 권한 오류를 방지할 수 있습니다. extend 폴더 하위에 user.config.php 파일을 생성하거나 편집하여 아래 코드를 추가합니다.

if (!defined('_GNUBOARD_')) exit; 

// 관리자 레벨을 20으로 변경
$super_admin_id = $config['cf_admin']; // 최고관리자 아이디 
sql_query(" update {$g5['member_table']} set mb_level = '20' where mb_id = '$super_admin_id' ");
  • 다음 행동: 위 코드를 추가한 후 그누보드 페이지 아무 곳에서나 새로고침하여 관리자 레벨이 상향된 것을 확인한 뒤, 추가했던 코드는 반드시 삭제합니다.

3. adm/board_form.php 파일 수정

게시판 사용 권한(읽기, 쓰기, 댓글쓰기 등) 설정에서 레벨 범위를 수정합니다.

  • 수정 내용: 소스 코드 내 여러 곳에 존재하는 읽기/쓰기 등의 권한 셀렉트 호출부에서 10을 20으로 변경합니다.
<?php echo get_member_level_select('bo_read_level', 1, 20, $board['bo_read_level'])?>

4. adm/config_form.php 파일 수정 및 추가 설정

기본환경설정 폼에서 관리자 및 권한 관련 레벨 범위를 확장합니다.

  • 최고관리자 아이디 선택 영역의 최대 레벨 지정값을 수정합니다.
<?php echo get_member_id_select('cf_admin', 20, $config['cf_admin'], 'required')?>
  • 예외 및 주의 조건: 회원가입 시 권한이나 회원 아이콘·이미지 업로드 권한 등 일반 항목은 최대 레벨보다 1 작게 적용(예: 20단계 확장 시 19로 설정)하여 실수로 관리자 권한이 부여되는 것을 방지합니다.
<?php echo get_member_level_select('cf_register_level', 1, 19, $config['cf_register_level'])?>
<?php echo get_member_level_select('cf_icon_level', 1, 19, $config['cf_icon_level'])?>

최고관리자 회원 레벨 변경 방법

회원 레벨 확장 후에는 최고관리자의 레벨도 새로 설정한 최대 레벨(예: 20단계)로 일치시켜야 합니다. extend/user.config.php 파일을 통해 DB 값을 일시적으로 업데이트합니다.

  1. extend/user.config.php 파일 상단 접근 차단 코드(if (!defined('_GNUBOARD_')) exit;) 바로 아래에 다음 코드를 추가합니다.
$super_admin_id = $config['cf_admin'];
sql_query(" update {$g5['member_table']} set mb_level = '20' where mb_id = '$super_admin_id' ");
  1. 그누보드 페이지를 새로고침하여 DB 업데이트를 실행합니다.
  2. 중요: 적용 확인 후, 추가했던 위 코드는 반드시 삭제하십시오. 잔류 시 페이지 로드마다 불필요한 DB 쿼리가 발생합니다.

게시판 및 환경설정 폼 레벨 범위 수정

관리자 화면에서 확장된 레벨을 선택할 수 있도록 관련 폼 파일을 수정합니다.

1. adm/board_form.php 수정

게시판 설정 내 권한 선택 함수(get_member_level_select) 호출부의 최대 레벨 인자를 20으로 변경합니다.

<?php echo get_member_level_select('bo_read_level', 1, 20, $board['bo_read_level'])?>

2. adm/config_form.php 수정

최고관리자 선택 범위 및 일반 회원 권한 범위를 수정합니다.

  • 최고관리자 선택: cf_admin 인자를 20으로 변경.
  • 일반 권한: 회원가입 및 아이콘 업로드 등은 보안을 위해 최대 레벨보다 1 낮은 19로 설정하는 것을 권장합니다.
<?php echo get_member_id_select('cf_admin', 20, $config['cf_admin'], 'required')?>
<?php echo get_member_level_select('cf_register_level', 1, 19, $config['cf_register_level'])?>

그누보드 회원 레벨 확장 및 권한 설정 방법

그누보드의 기본 회원 레벨(1~10단계)을 초과하여 확장(예: 20단계)하려면 관리자 라이브러리, 설정 파일, 폼 파일 등을 수정해야 합니다.

1. adm/admin.lib.php 파일 수정

get_member_level_select 함수의 $end_id 기본값을 수정합니다.

  • 수정 위치: adm/admin.lib.php
  • 내용: $end_id=10 부분을 원하는 최대 레벨(예: $end_id=20)로 변경합니다.

2. extend/user.config.php 파일 수정

최고관리자 레벨을 새로 설정한 최대 레벨로 변경합니다.

  • 수정 위치: extend/user.config.php
  • 내용: if (!defined('_GNUBOARD_')) exit; 바로 밑에 아래 코드를 추가하여 새로 고침 후 관리자 레벨을 상향합니다.
$super_admin_id = $config['cf_admin']; // 최고관리자 아이디
sql_query(" update {$g5['member_table']} set mb_level = '20' where mb_id = '$super_admin_id' ");
  • 주의: 적용 확인 후 추가했던 코드는 반드시 삭제해야 합니다.

3. adm/board_form.php 파일 수정

게시판 사용 권한(읽기, 쓰기, 댓글쓰기 등)의 레벨 범위를 수정합니다.

  • 수정 위치: adm/board_form.php
  • 내용: 여러 곳에 존재하는 권한 선택 코드의 10을 20으로 변경합니다.
    • 예: <?php echo get_member_level_select('bo_read_level', 1, 20, $board['bo_read_level'])?>

4. adm/config_form.php 파일 수정

기본환경설정 폼의 최고관리자 및 관련 권한 범위를 수정합니다.

  • 수정 위치: adm/config_form.php
  • 내용:
    • 최고관리자 선택 범위 수정: <?php echo get_member_id_select('cf_admin', 20, $config['cf_admin'], 'required')?>
    • 회원가입 및 이미지 업로드 권한 등 필요한 항목은 최대 레벨보다 1 작게 설정합니다. (예: 20단계 확장 시 19로 변경)
    • 회원가입시 권한: <?php echo get_member_level_select('cf_register_level', 1, 19, $config['cf_register_level'])?>
    • 회원 아이콘, 이미지 업로드 권한: <?php echo get_member_level_select('cf_icon_level', 1, 19, $config['cf_icon_level'])?>

그누보드 회원 레벨 확장 가이드

내 상황선택 기준다음 행동
기본 10단계 권한 체계를 20단계 등으로 확장하고 싶음라이브러리 함수와 DB 내 최고관리자 레벨 일치 필요adm/admin.lib.php의 $end_id 수정 후 extend/user.config.php를 통해 DB 레벨 갱신
폼 및 게시판 설정에서 확장된 레벨이 보이지 않음관리자 폼 파일 내 선택 범위(셀렉트 박스) 인자 수정 필요adm/board_form.php와 adm/config_form.php의 레벨 값을 목표치로 변경
확장 과정에서 실수로 회원가입 시 관리자 권한이 부여될 우려가 있음일반 사용자 관련 레벨은 최대치보다 낮게 설정 필요회원가입·업로드 권한(cf_register_level 등)은 최대 레벨보다 1 작게 설정

실전 FAQ

Q. extend/user.config.php에 추가한 최고관리자 레벨 업데이트 코드는 언제 삭제해야 하나요?

  • 답변: 페이지 새로고침을 통해 관리자 레벨 상향이 DB에 반영된 것을 확인한 직후, 해당 코드는 반드시 삭제해야 합니다. 잔류 시 페이지 로드마다 불필요한 DB 쿼리가 발생합니다.

Q. 회원가입이나 아이콘 업로드 권한은 왜 최대 레벨보다 1 작게 설정하나요?

  • 답변: 실수로 일반 회원가입 권한이 최고 관리자 레벨과 동일하게 설정될 경우, 신규 가입자가 관리자 권한을 획득하는 보안 사고가 발생할 수 있습니다. 이를 방지하기 위해 일반 설정은 최대치보다 낮게 지정합니다.

Q. adm/board_form.php를 수정했음에도 특정 게시판에서 여전히 10단계까지만 선택되는 경우는 어떻게 하나요?

  • 답변: 해당 파일 내에는 읽기, 쓰기, 댓글쓰기 등 get_member_level_select 함수를 호출하는 코드가 여러 군데 존재합니다. 파일 내 모든 호출부의 인자값이 수정되었는지 소스 전체를 재확인하십시오.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.