PHP/그누보드

2022-01-11 그누보드5 관리자만 접속 가능 코드

Zandon 2022. 1. 11. 15:16

그누보드 기반입니다.

 

 

/*

그누보드5 common.lib 함수 중에 is_admin 페이지를 살펴보면,

아래와 같은 코드가 있습니다. 그중 global에 $member 변수 추가해주고,

관리자 level 등급에 맞게 보여지도록 세팅해 보겠습니다.

*/

 

// 관리자인가?
function is_admin($mb_id)
{
    global $config, $group, $board,$member; //$member 추가해줌

    if (!$mb_id) return;

    if ($config['cf_admin'] == $mb_id) return 'super';
    if (isset($group['gr_admin']) && ($group['gr_admin'] == $mb_id)) return 'group';
    if (isset($board['bo_admin']) && ($board['bo_admin'] == $mb_id)) return 'board';
    
    // 조건을 추가 해주었습니다. 레벨 3이상 권한 부여  
    if($member['mb_level'] > '2') return 'super';
    
    return '';
}

 

commom.lib 수정본

/*

페이지 맨앞에 접근 권한을 설정해줍니다. 

관리자가 아니면 exit(); 시켜주고 추가로 특정ip만 접근 가능하도록 해주었습니다.

*/

 

if (! $is_admin) {
    exit();
    // 너는 관리자가 아니다. (if문 앞에 느낌표 지워주시면 '관리자이다.' 가 됩니다)
}

$possible_ip = 'x.xxx.xxx.xxx'; // 아이피입력

if ($_SERVER['REMOTE_ADDR'] != $possible_ip) {

    alert('접근 권한이 없습니다.', 'logout.php');
}

페이지 맨 위에 적기