채택완료

최고관리자를 추가하고 싶어요..

권한을 따로 주지 않고 최고관리자를 하나 더 만들고 싶은데 어디를 수정해야 할까요??

 

DB에 직접 아이디를 추가하면 되려나요?? 추가 한다면 어느 테이블 인가요? ㅠㅠ

|

답변 3개

채택된 답변
+20 포인트

/lib/common.lib.php 779번 라인

    if ($config['cf_admin'] == $mb_id) return 'super';
아래에

     if ("추가아이디" == $mb_id) return 'super';

 

이렇게 하고 추가 아이디 권한을 회수하려면 추가한 줄만 삭제하거나 주석처리 합니다

감사합니다~ 

최고관리자 구분은 db의 멤버테이블에서 하는게 아니라 config테이블에서 하는 거에요.

 

원래 한명만 가능한데 제가 필요해서 예전에 사용한 방법이었어요. 

 

제가 어디까지 수정했는지 기억이 잘 안나서 안될수도 있거나 다른거에서 오류가 날수도 있어요...

 

예전에 수정했던거라 요즘거 다운받은거로 알려드릴께요.

 

일단 최고관리자는 사이트 환경설정테이블인 db의 gb_config에 저장됩니다.

 

이 테이블을 불러와서 이사이트의 최고관리자는 $config['cf_admin​'] 이다 라는 선언을 /common.php에서 해줘요.

 

근데 최고관리자인 is_admin체크는 /lib/common.lib에서 하게되요.

 

/lib/common.lib에서는 common.php에서 설정한 $config['cf_admin']의 값이 현재 나의값인 $mb_id와 일치하는가를 체크한후 일치한다면 super라는 최고관리자 권한값을 리턴해주고 아니라면 현재 값에 맞는 것을 재확인해서 리턴해줘요.

 

여기서 $config['cf_admin']값을 db에서 직접 두개로 입력해주시고 구분하시면되요.

 

저는 admin과 subadmin이라는 값을 db의 gb_config테이블의 cf_admin값에 'admin||subadmin' 이라고 입력해두고 사용했었어요. (예전에요..)

 

이렇게 적용하는 방법은 관리자인지 체크하는 /lib/common.lib의 is_admin펑션에서(검색을 is_admin으로 하시면대요)

 

Copy
if ($config['cf_admin'] == $mb_id) return 'super'; // 이전에 있던 검색방식이고요​ //제가 사용했을거라 예상되는 방식$adminChk = explode("||", $config['cf_admin']);// 이렇게하면 $adminChk[0] = admin, $adminChk[1]​ = subadmin​if($adminChk[0] == $mb_id){return 'super';}else if($adminChk[1] == $mb_id){return 'super';}

답변을 작성하려면 로그인이 필요합니다.