관리자 메뉴 중 하나만 모든 회원에게 권한을 주는 방법 질문입니다.

관리자 메뉴 중 하나만 모든 회원에게 권한을 주는 방법 질문입니다.

QA

관리자 메뉴 중 하나만 모든 회원에게 권한을 주는 방법 질문입니다.

본문

그누보드에서 관리자 메뉴중 권한을 주려면 auth테이블에 회원을 추가를 해야만

가능한 걸로 알고 있습니다.

 

그누보드에서 모든 회원에게 관리자의 하나의 메뉴만 열람이 가능하도록 하고 싶습니다.

 

auth테이블에 회원추가말고 다른 방법은 없을까요???  

 

회원이 아주 많게 되면 auth테이블이 데이터의 낭비가 너무 심할 것 같아서 질문을 올립니다.

 

고수님들 부탁드립니다. ㅜㅜ 

이 질문에 댓글 쓰기 :

답변 2

adm/admin.head.php 부분에서 해당소스가 있습니다.


        <nav id="gnb">
            <h2>관리자 주메뉴</h2>
            <?php
            $gnb_str = "<ul id=\"gnb_1dul\">";
            foreach($amenu as $key=>$value) {
                $href1 = $href2 = '';
                if ($menu['menu'.$key][0][2]) {
                    $href1 = '<a href="'.$menu['menu'.$key][0][2].'" class="gnb_1da">';
                    $href2 = '</a>';
                } else {
                    continue;
                }
                $current_class = "";
                if (isset($sub_menu) && (substr($sub_menu, 0, 3) == substr($menu['menu'.$key][0][0], 0, 3)))
                    $current_class = " gnb_1dli_air";
                $gnb_str .= '<li class="gnb_1dli'.$current_class.'">'.PHP_EOL;
                $gnb_str .=  $href1 . $menu['menu'.$key][0][1] . $href2;
                $gnb_str .=  print_menu1('menu'.$key, 1);
                $gnb_str .=  "</li>";
            }
            $gnb_str .= "</ul>";
            echo $gnb_str;
            ?>
        </nav>

 

이부분을 이런식으로 바꾸어 주면 일단 나머지 메뉴들은 가려집니다.


        <nav id="gnb">
            <h2>관리자 주메뉴</h2>
            <?php
            $gnb_str = "<ul id=\"gnb_1dul\">";
            foreach($amenu as $key=>$value) {
                $href1 = $href2 = '';
                if ($menu['menu'.$key][0][2]) {
                    $href1 = '<a href="'.$menu['menu'.$key][0][2].'" class="gnb_1da">';
                    $href2 = '</a>';
                } else {
                    continue;
                }
                $current_class = "";
                if (isset($sub_menu) && (substr($sub_menu, 0, 3) == substr($menu['menu'.$key][0][0], 0, 3)))
                    $current_class = " gnb_1dli_air";
 
				//최고관리자 id가 admin이 아니라면 관리자메뉴를 모두 공개하지않음
				if($member['mb_id'] != 'admin'){
					if($menu['menu'.$key][0][1] == '환경설정' || $menu['menu'.$key][0][1] == '게시판관리' || $menu['menu'.$key][0][1] == '회원관리' || $menu['menu'.$key][0][1] == 'SMS 관리'){
						continue;
					}
					//대메뉴 환경설정, 게시판관리는 보여지지않게 처리
					$gnb_str .= '<li class="gnb_1dli'.$current_class.'">'.PHP_EOL;
					$gnb_str .=  $href1 . $menu['menu'.$key][0][1] . $href2;
					$gnb_str .=  print_menu1('menu'.$key, 1);
					$gnb_str .=  "</li>";
				}else{//최고관리자 id가 admin이라면 관리자 메뉴를 모두 공개
					$gnb_str .= '<li class="gnb_1dli'.$current_class.'">'.PHP_EOL;
					$gnb_str .=  $href1 . $menu['menu'.$key][0][1] . $href2;
					$gnb_str .=  print_menu1('menu'.$key, 1);
					$gnb_str .=  "</li>";
				}
            }
            $gnb_str .= "</ul>";
            echo $gnb_str;
            ?>
        </nav>

 

그리고 extend폴더안에

admin.extend.php 파일을 생성합니다.

이부분은 관리자 화면에 들어가기위해서는

일단 관리자로 설정을 해야되기때문에 이렇게 하였습니다.

admin.extend.php파일에 이렇게 작성해줍니다


<?
$sql = sql_query("select * from {$g5['member_table']}");
 
while($data = sql_fetch_array($sql)){
	$mb_id = $data['mb_id'];
		if ($member['mb_id'] == $mb_id) $is_admin = 'super';
}
// 최고관리자
 
?>

 

이렇게 while문을 돌리면서 해당 회원들을 전부 관리자로 만들어 버립니다.

하지만 admin.head.php파일에서

최고관리자id인 admin이 아니라면

기타 메뉴는 보이지 않도록 설정하였기에 문제없을듯하네요.

기타 에러나 글쓰기를 아무나 할수있다거나 하는 부분이 생기면

수정하셔야하겠습니다.

무슨메뉴를 준다는 말인가요?정확히 어떤 메뉴를 모든 회원에게 오픈하고 싶은지요?

네, 제가 만든 관리자 메뉴입니다. (새로 만든 것입니다.)

admin.menu600.php를 새로 만들었습니다.
그리고

$menu["menu600"] = array (
    array('600000', '구좌관리', ''.G5_ADMIN_URL.'/account.php', 'account'),
    array('600100', '구좌리스트', ''.G5_ADMIN_URL.'/account.php', 'account_config'),
array('600200', '구좌리스트 테스트', ''.G5_ADMIN_URL.'/account_test.php', 'account_config'));

답변을 작성하시기 전에 로그인 해주세요.
전체 123,789 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT