관리자 메뉴 중 하나만 모든 회원에게 권한을 주는 방법 질문입니다.
본문
그누보드에서 관리자 메뉴중 권한을 주려면 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이 아니라면
기타 메뉴는 보이지 않도록 설정하였기에 문제없을듯하네요.
기타 에러나 글쓰기를 아무나 할수있다거나 하는 부분이 생기면
수정하셔야하겠습니다.
!-->!-->!-->무슨메뉴를 준다는 말인가요?정확히 어떤 메뉴를 모든 회원에게 오픈하고 싶은지요?
답변을 작성하시기 전에 로그인 해주세요.