내가 쓸라고 만들 블로그

반응형

예를 들어:

  • 관리자만 확인해야 하는 내부 공지
  • 특정 직원 아이디만 접근 가능한 업무 페이지
  • 특정 그룹에 속한 사용자만 볼 수 있는 자료실

그누보드(Gnuboard)는 PHP 기반 CMS라서, 조건문을 활용하면 손쉽게 접근 권한을 제어할 수 있습니다.
이번 글에서는 관리자 전용 + 특정 아이디 + 특정 그룹 전용 콘텐츠 구현 방법을 전문가 관점에서 정리합니다.

관리자 전용 콘텐츠 출력

그누보드에는 $is_admin 변수가 기본 제공됩니다.

  • super : 최고관리자
  • group : 그룹관리자
  • board : 게시판관리자
  • "" : 일반회원 또는 비회원

위의 3가지 형태로 정해져 있다.

<p>아무나 볼 수 있는 내용</p>
<?php
	if ($is_admin) echo "<p>관리자 전용</p>";
	if ($is_admin == 'super')  echo "<p>최고관리자만 볼 수 있는 내용</p>";
?>

결과화면

최고관리자는 관리자 그룹에도 포함 되어있기에 is_admin도 볼수 있다.

 

특정 아이디 전용 콘텐츠 출력

특정 사용자 계정(예: testuser)만 볼 수 있도록 하려면 $member['mb_id'] 변수를 활용합니다.

특정 유저에게만 노출 시킬 내용이 있다면 아래 처럼 사용하면된다.

<?php
if ($member['mb_id'] == 'testuser') {
    echo "<p>testuser 계정 전용 콘텐츠.</p>";
}
?>

다만 보통 이런식으로 서비스 하지는 않다면 특수한 경우나 테스트 용도로 써봐도되지 않을까 싶다.

만약 특정 콘텐츠를 노출 시키고 싶은 화면의 특정 대상이 여러명일 경우

<?php
	$allow_ids = array('testuser', 'admin02', 'manager01');
	if (in_array($member['mb_id'], $allow_ids)) {
    	echo "<p>특정 3명의 아이디에게만 보이는 전용 콘텐츠</p>";
	}
?>

이런식으로 사용하면 별도로 여러명에게 정해줄 수 있다.

다만 아이디를 이렇게 코드상에 노출시키는건 보안상으로 좋진 않으니 주의 해야한다.

반응형

 

특정 그룹 전용 콘텐츠 출력

특정 회원이 너무 많거나 그룹으로 보여주고 싶을때는

$member['mb_level']를 사용해 특정 그룹 코드만 접근 가능한 그룹 관련 변수를 활용한다.

<?php
    if ($member['mb_id'] && $member['mb_group'] == 'staff') {
        echo "<p> 스태프 그룹 전용 콘텐츠입니다.</p>";
    }
?>

※ 기본 그누보드에는 mb_group 필드가 없으므로,

  • 확장 필드(여분필드)
  • 별도 그룹 관리 테이블
  • mb_level 권한 값

을 활용하여 그룹을 제어하는 방식으로 구현할 수 있습니다.

예시: mb_level >= 5 이상 회원만 접근 가능

<?php
if ($member['mb_level'] >= 5) {
    echo "<p>레벨 5 이상 회원 전용 콘텐츠입니다.</p>";
}
?>

 

정리

 

  • $is_admin → 관리자만 접근
  • $member['mb_id'] → 특정 아이디 전용
  • $member['mb_level'] or 그룹 필드 → 특정 그룹 전용

 

반응형

+ Recent posts