그누보드 관리자 메뉴 회원 레벨별 권한 제어 기능 구현 방법
페이지 정보

본문
그누보드 관리자 메뉴 회원 레벨별 권한 제어 기능 구현 방법
그누보드 관리자 페이지의 메뉴 설정에 회원 레벨별 권한 제어 필드를 추가하고, 버전에 맞게 출력 로직을 수정하여 특정 등급 이상의 사용자에게만 메뉴가 노출되도록 설정하는 방법을 안내합니다.
그누보드 기본 메뉴 시스템 권한 제어 불가 원인
그누보드 기본 메뉴 시스템에서 레벨별 권한 제어가 되지 않는 원인은 데이터베이스 구조와 출력 쿼리에 관련 조건이 누락되어 있기 때문입니다.
- 데이터베이스 구조의 한계:
g5_menu테이블 구조 내에 레벨별 권한 제어를 위한 전용 필드가 포함되어 있지 않습니다. - 쿼리 조건 누락: 메뉴를 출력하는 쿼리문에 회원 레벨에 따른 권한 조건이 적용되어 있지 않아, 모든 사용자가 동일한 메뉴를 보게 됩니다.
g5menu 테이블 melevel 필드 추가 및 관리자 화면 설정
1. DB 필드 추가
adm/menu_list.php 파일 상단에 아래 코드를 임시로 추가한 뒤 관리자 메뉴 설정 페이지에 접속하면 me_level 필드가 자동으로 생성됩니다. 생성 후에는 반드시 코드를 삭제하십시오.
if(!sql_query(" SELECT me_level from {$g5['menu_table']} limit 1 ")) { sql_query(" ALTER TABLE `{$g5['menu_table']}` ADD `me_level` tinyint(4) NOT NULL DEFAULT '0' AFTER `me_mobile_use` ", true); }
2. 관리자 화면 입력 폼 추가
adm/menu_form.php 파일에서 메뉴 순서 설정(me_order) 입력란 근처에 아래 코드를 추가하여 권한 레벨을 입력받을 수 있도록 합니다.
<tr>
<th scope="row"><label for="me_level">권한 레벨</label></th>
<td><input type="text" name="me_level" value="<?php echo $me['me_level']; ?>" id="me_level" class="frm_input" size="5"> (0: 비회원, 1: 회원, 10: 최고관리자)</td>
</tr>
3. 업데이트 쿼리 수정
adm/menu_list_update.php 파일의 SQL 쿼리문에 me_level = '{$_POST['me_level']}' 항목을 추가하여 입력값이 DB에 저장되도록 수정합니다.
그누보드 버전별 메뉴 출력 로직 수정 방법
그누보드 버전별로 메뉴 출력 쿼리에 권한 조건을 추가하는 방법은 다음과 같습니다.
그누보드 5.3 버전
head.php파일의 메뉴 출력 쿼리에and me_level <= '{$member['mb_level']}'조건을 추가합니다.
그누보드 5.4 버전
lib/get_data.lib.php내get_menu_db함수를 찾아$member변수를 전역 선언하고 쿼리에 동일한 조건을 추가합니다.
함께 보면 좋은 글
참고자료
기타 참고자료
- 이전글그누보드4 회원가입 시 아이디 중복 체크 403 Forbidden 오류 해결 방법 26.09.17
- 다음글그누보드4 윈도우 서버 환경 PHP mktime 날짜 오류 해결 방법 26.09.16
댓글목록
등록된 댓글이 없습니다.