관리자이거나 특정 레벨 이상이라면 권한을 주는 - if문

본문 바로가기

그누보드 관리자이거나 특정 레벨 이상이라면 권한을 주는 - if문

페이지 정보

작성자 키스세븐 댓글 0건 조회 24회 작성일 18-09-25 21:09

본문

[관리자이거나 특정 레벨 이상이라면 권한을 주는 - if문]



특정 레벨 이상일 경우 권한 주는 if문


그누보드는 관리자 페이지에서 권한(레벨)에 따라 게시물 읽기나 쓰기 권한을 조정할 수 있습니다.

그러나 이것은 어디까지나 게시물을 읽고, 쓰고, 수정하고, 링크를 열람하는 등의 기능에 제약을 둘 수 있을 뿐입니다. 작은 사이트라면 관계없지만, 사이트 자체에 많은 기능을 담자면 이것만으로는 모자랍니다. 


관리자이거나 특정 레벨 이상이라면 권한을 주는 if문을 통해서 그 외에도 여러 가지 기능을 등급에 따라 사용할 수 있게 할 수 있습니다. 이 방법을 잘 활용하면 자신이 쓴 글이거나 제한이 있어도 어느 기능은 사용하게 할 때 허용할 수도 있고, 사이트 관리를 맡은 스텝에게 관리자만의 슈퍼권한을 줄 수도 있습니다. 


if문으로 관리자이거나 특정 레벨 이상이라면 권한을 주는 것은 관리자 등급 변수 $is_admin와 $member[mb_level]을 사용합니다.

아래는 가장 기본적인 뼈대를 이루는 PHP코드입니다. 물론 그누보드 변수에서 사용이 가능합니다.

<?php

if (등급 등의 기준 조건) { // 조건 판별 코드

echo "권한을 가지고 있습니다."; // 조건에 맞을 때 실행될 코드

}

?>

위의 PHP코드는 특정 조건에 맞을 때 어떤 기능을 실행시키라는 기본적인 if문입니다.



if문의 관리자라면, 특정 레벨이라면... 코드


그럼 기본적인 if문에 그누보드의 변수와 판별을 사용해서 특정 레벨 이상이라면 권한을 주는 경우를 만들어 봅시다.

여기서 중요한 것은 "$is_admin"입니다. 이것은 관리자인지를 알아보는 조건기준입니다. 즉, 아래와 같이 if문을 짜면 관리자라면 권한을 주고 특정 기능을 실행시킬 수 있습니다.

<?php

if ($is_admin) {

실행될 코드;

}

?>

이번에는 특정 레벨 이상이라면 접근할 수 있도록 코드를 짜 봅시다. 이것도 로그인이 되어 있는 상태에서만 가능합니다.

여기서 중요한 것은 "$member[mb_level]"입니다. 그 옆에 부등호나 =을 써서 특정 레벨 이상이면 권한을 가질 수 있는 기준을 정합니다.

<?php

if ($member[mb_level] >= 9) {

실행될 코드;

}

?>

그런데, 관리자나 레벨 권한이 없더라도 이미 글의 쓴 사람의 게시물이기 때문에 조건에 해당하지 않아도 편집 권한을 줘야 할 경우가 있습니다.

이럴 때는 "$member[mb_id] && ($member[mb_id] == $write[mb_id]))"로 기준을 줍니다. ==라고 되어 있으니 같다는 뜻이고, 로그인 아이디와 글 쓴이 아이디를 비교해서 같은 지 보는 것입니다.

<?php

if ($member[mb_id] && ($member[mb_id] == $write[mb_id])) {

실행될 코드;

}

?>


중복으로 특정 레벨 조건과 관리자 조건 사용하기


그런데 어떨 때는 스텝이 따로 활동하는 경우도 있기 때문에 관리자면서 동시에 특정 레벨 이상이라면 권한을 주는 코드가 필요할 수도 있습니다. 그러나 역시 if문의 문법을 이용해서 동시에 허락할 수도 있습니다.

<?php

if ($is_admin || $member[mb_level] >= 9) {

실행될 코드;

}

?>

이렇게 두 가지 이상의 조건에 대한 허용은 중간에 표시된 "||"이 중요한 역할을 합니다. 집합에서는 합집합의 의미이며 "관리자이거나 레벨이 맞거나" 어느 것이든 한 가지가 맞으면 코드를 실행시킬 수 있게 됩니다. 


그런데 이것은 굳이 그누보드에서만 가능한 기능은 아닙니다. 그누보드에서 제공하는 것은 $is_admin나 $member[mb_level] 같은 변수일 뿐입니다. 실질적으로 if나 >=나 ==나 ||는 원래부터 PHP 등의 프로그래밍들에서 제공하는 문법입니다. 그러므로 이를 잘 사용한다면 또 다른 여러 변형도 가능할 것입니다.





추천0
  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


Copyright © 1997-. 키스세븐 www.kiss7.kr All rights reserved.