회원레벨9권한 추가시키고 싶습니다.
본문
안녕하세요~
게시판에서 관리자인 경우 아래처럼 게시판 상태 변경을 할 수 있는데,
관리자가 아닌 9레벨 회원도 게시판의 상태를 변경하고 싶습니다.
혹시 방법을 알 수 있을까요?
부탁드립니다~
<?php
if ($list[$i]['wr_3'] == '0') echo "<span style='color:black'>상담</span>";
else if ($list[$i]['wr_3'] == '1') echo "<span style='color:black'>상담완료</span>";
else echo "<span style='color:black'>상담</span>";
if($is_admin) { // 관리자인경우 상태변경
echo "<select id='wr_stat' name='wr_stat' class='form-control inline-block'>";
echo "<option value=''>진행상황선택</option>";
echo "<option value='0'>0: 상담</option>";
echo "<option value='1'>1: 상담완료</option>";
echo "</select>";
}
?>
답변 3
if($is_admin || $member['mb_level'] == 9) { // 관리자, 레벨9인경우 상태변경
해당 페이지가 수정 페이지일때 관리자 권한이 없다면
내가 쓴 글만 접근할수 있을꺼에요.
왜냐하면 업데이트 권한도 채크 하니까요.
그래서 특정 회원을 관리자로 전환하는 방법을 알려드릴께요.
두가지 방법이 있습니다.
1. 9등급도 관리자 권한 할당.
팁게시물 참조 : https://sir.kr/g5_tip/4296
2. 9등급을 특정 그룹 또는 게시판에서만 관리자로 할당.
팁게시물 참조 : https://sir.kr/g5_tip/2922
위 두가지 방법중 원하시는 형태로 작업하시면 되겠습니다.
수정 페이지에서 관리자는 모든 글에 접근할 수 있으며,
레벨 9 이상의 회원은 본인이 작성한 글만 접근 가능하면서 상태 변경 권한도 부여받습니다.
일반 회원은 본인이 작성한 글만 수정할 수 있습니다.
또한, 수정 페이지에 특정 회원의 권한을 변경하는 폼을 추가하여
관리자가 바로 해당 페이지에서 특정 회원의 레벨을 9 이상으로 변경하여
관리자 권한을 부여할 수 있도록 구현합니다.
아래의 방식은 권한 제어와 관리 기능을 하나의 페이지에서 통합하여 관리할 수 있습니다.
★ 수정 페이지 (bbs/write.php)
<?php
// 공통 파일 포함
include_once('./_common.php');
// 수정 페이지에서 접근 권한 처리
if ($w == 'u') { // $w == 'u'는 수정 모드
if (!$is_admin && $member['mb_level'] < 9) { // 관리자도 아니고, 레벨 9 미만인 경우
if ($write['wr_writer'] != $member['mb_id']) { // 본인 글이 아닌 경우 접근 차단
alert("본인이 작성한 글만 수정할 수 있습니다.");
exit;
}
}
}
// 관리자인 경우, 특정 회원의 레벨 변경 UI 제공
if ($is_admin) {
?>
<form method="post" action="admin_level_update.php">
<h3>특정 회원을 관리자로 전환</h3>
<select name="mb_id">
<?php
$sql = "SELECT mb_id, mb_name FROM g5_member WHERE mb_level < 9"; // 관리자가 아닌 회원만
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
echo "<option value='{$row['mb_id']}'>{$row['mb_name']} ({$row['mb_id']})</option>";
}
?>
</select>
<select name="mb_level">
<option value="1">일반 회원</option>
<option value="9">관리자</option>
<option value="10">슈퍼 관리자</option>
</select>
<button type="submit">권한 변경</button>
</form>
<?php
}
?>
★ 권한 변경 처리 (bbs/admin_level_update.php)
<?php
include_once('./_common.php');
// 관리자 권한 확인
if (!$is_admin) {
alert("관리자만 접근 가능합니다.");
exit;
}
// 입력값 받기
$mb_id = $_POST['mb_id'];
$mb_level = (int)$_POST['mb_level'];
// 회원 레벨 업데이트
$sql = "UPDATE g5_member SET mb_level = '$mb_level' WHERE mb_id = '$mb_id'";
if (sql_query($sql)) {
alert("회원 권한이 성공적으로 변경되었습니다.", "./write.php");
} else {
alert("권한 변경에 실패했습니다.");
}
?>