웹마스터 팁

뭡니까?
 권한이 없는 곳에 접근하면

[권한이 없습니다] 라고 뜹니다.

하지만, 회원별 등급을 나누어 운영하는 사이트의 경우,

메시지도 순화시키고, 어떤 등급이 필요한 것인지

(사실 노출 안되는것이 제일 편리하지만)

알려주기 위해서 수정해보았습니다.

어떻게 합니까
 파일 몇 개 수정합니다.

1. 원하는 메시지를 마구마구 추가하세요
    $lang->msg_not_permitted_member1 = '당신 빼고 다 열람 가능합니다 :)';
    $lang->msg_not_permitted_member2 = '잘생긴 사람 이상 열람 가능합니다 :)';
    $lang->msg_not_permitted_member3 = '로그인 후 열람 가능합니다 :)';
(코드 입력기가 잘 작동안하네요;; common/lang/ko.lang.php입니다.)


2. 권한 정보를 잠시 빼옵니다. 당장 해킹의 위험이 있는것은 아니지만, zbxe에서 원하는 객체지향적인면에서 권한을 알 필요가 없는 곳에서 권한을 가져온다는면에서 바람직하지는 않습니다만, 각오하고 쓰세요 ㅋㅋㅋㅋ
             // 권한변수 설정
            $this->grant = $grant;
            Context::set('grant', $grant);

                // 권한값을알기위한설정
            Context::set('grants', $this->module_info->grants);

            if(method_exists($this, 'init')) $this->init();
가운데 Context::set('grants', $this->module_info->grants); 를 추가하시는겁니다.


3. 지금은 board모듈에서 수정합니다. 다른 모듈도 비슷하게 시도해보세요..
         /**
         * @brief 목록 및 선택된 글 출력
         **/
        function dispBoardContent() {
            /**
             * 목록보기 권한 체크 (모든 권한은 ModuleObject에서 xml 정보와 module_info의 grant 값을 비교하여 미리 설정하여 놓음)
             **/

            $grants = Context::get('grants');

            if(!$this->grant->list) 

            /**
            * module_info에서 권한을 검사하여 해당하는 메시지 출력
            **/
{
            if (in_array('2',$grants['view'])) // 그룹2에게 보기 권한이 있을 때
                return $this->dispBoardMessage('msg_not_permitted_member2');
            elseif (in_array('3',$grants['view'])) // 그룹3에게 보기 권한이 있을 때
                return $this->dispBoardMessage('msg_not_permitted_member3');
            elseif (in_array('4',$grants['view'])) // 그룹4에게 보기 권한이 있을 때
                return $this->dispBoardMessage('msg_not_permitted_member4');
            else
                return $this->dispBoardMessage('msg_not_permitted');

}
 
위 파일 경우는, 사실 원래는 목록보기 권한이 없을 때 나올 메시지입니다만,
그냥 들어왔는데, 로그인해라길래 들어오니까 등급이안된다고 안보여주면 짜증나니까
한번에 필요한 큰 권한을 알려주는..? 뭐 알아서 잘 편집하세요 ㅋ

                     // 글 보기 권한을 체크해서 권한이 없으면 오류 메세지 출력하도록 처리
                    if(!$this->grant->view && !$oDocument->isGranted()) {
                        $oDocument = null;
                        $oDocument = $oDocumentModel->getDocument(0);

                        Context::set('document_srl','',true);
                        if (in_array('2',$grants['view'])) //그룹2에게 보기 권한이 있을 때
                                return $this->alertMessage('msg_not_permitted_member1');
                        elseif (in_array('3',$grants['view'])) //그룹3에게 보기 권한이 있을 때
                                return $this->alertMessage('msg_not_permitted_member2');
                        elseif (in_array('4',$grants['view'])) // 그룹4에게 보기 권한이 있을 때
                                return $this->alertMessage('msg_not_permitted_member3');
                        else
                                return $this->alertMessage('msg_not_permitted');

                    } else {
 
소스 건드실 분들은 아시겠지만, 저기 2,3,4들은 group_srl입니다. 직접 값을 모르시면 잘 찾아보세요...
 
추가) 관리자로 로그인하셔서 관리 -> 회원 -> 그룹관리 -> 해당 그룹의 수정 링크의 속성에서 링크 주소를 보시면 group_srl=숫자 가 나옵니다. 이 숫자가 해당 그룹의 시리얼넘버이구요, 저기 '2', '3'등과 같이 있는 곳에 해당 숫자를 넣으시면 됩니다 :)

스샷은 귀찮아서..
태그 연관 글
  1. [2021/01/21] 묻고답하기 메일인증 에러(고급 메일 발송 모듈)을 이용 by ZETSUEN
  2. [2019/06/11] 묻고답하기 첨부파일 본문 삽입 다운로드 에러 by woobi *2
  3. [2018/08/29] 묻고답하기 로그인해야만 사이트가 보여요 by sselang *2
  4. [2018/06/15] 묻고답하기 서버 설치 처음이라서 많은 도움 부탁드립니다 by 허원정 *1
  5. [2017/07/18] 묻고답하기 게시판 공개 권한 질문 드려요 도와 주세요ㅠㅠ by sheis**** *2
제목 글쓴이 날짜
|웹폰트(네이버 맑은 고딕, 나눔고딕) 적용하기 [1] 다큰왕자 2014.03.18
호환성보기 명령어 모음 다큰왕자 2014.03.17
아이피, 도메인 차단하는 방법 ByteCMC 2014.03.16
모바일 웹 팁 natureweb 2014.03.13
css3를 이용한 button 입니다. Ansi™ 2014.03.13
XE 업로드 먹통시 1.7.8 버전 - 추가로 질문포함. [1] artsmi.myid.net 2014.03.12
관리자 비밀번호 분실시 phpmyadmin을 이용하여 재설정하는 방법 [6] elancer 2014.03.11
폰갭 처리시 뒤로가기 종료 처리 방법 웹빌드 2014.03.11
XE 어플 개발시 키보드위에 입력창 올리기 [4] 웹빌드 2014.03.11
사이트접속시 모바일기기 접속이면 설정한 페이지로 이동시키기 홈피닥터 2014.03.09
홈페이지 주소창 상세 링크 안보이게 설정 헤이즈디자인 2014.03.09
xp어플 개발시 사진 회원 바로잡아 주는 함수 웹빌드 2014.03.09
게시판에 대해 닉네임,이름 등의 정렬을 추가하는 방법 [1] sejin7940 2014.03.09
게시판 접속시에 첫(제일 최근) 게시물이 보여지게 하기 [16] foret 2014.03.08
날짜를 출력하는 간단한 소스입니다 낮은자 2014.03.07
[jQuery] 클릭하면 내용이 사라지는 방법 낮은자 2014.03.07
[초보]자신의 컴퓨터에 서버설치 [2] file 낮은자 2014.03.07
중국대륙 IP 차단방법 [5] 낮은자 2014.03.07
한글, 영문, 숫자, 특수문자 체크하는 함수 ByteCMC 2014.03.07
자주 쓰이는 정규표현식 모음 투니페이퍼 2014.03.06