CMS솔루션마켓, 이온디 - 워드프레스, 라이믹스, 카페24, 그누보드, 엑셀
이온디
21.08.20
조회 수 15
추천 수 0
댓글 0
Extra Form
관련링크 https://xetown.com/questions/1001494

$grant


이걸 왜 찾아봤을까..;;


문서권한지정애드온

https://xe1.xpressengine.com/index.php?mid=download&package_id=21015635



[권한이 없습니다] 권한에 따른 다른 메시지 출력하기

https://xe1.xpressengine.com/tip/17334915

뭡니까?

 권한이 없는 곳에 접근하면

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

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

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

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

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

어떻게 합니까

 파일 몇 개 수정합니다.

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


2. 권한 정보를 잠시 빼옵니다. 당장 해킹의 위험이 있는것은 아니지만, zbxe에서 원하는 객체지향적인면에서 권한을 알 필요가 없는 곳에서 권한을 가져온다는면에서 바람직하지는 않습니다만, 각오하고 쓰세요 ㅋㅋㅋㅋ
182
183
184
185
186
187
188
189
// 권한변수 설정
$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모듈에서 수정합니다. 다른 모듈도 비슷하게 시도해보세요..
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
         /**
         * @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');
 
}
위 파일 경우는, 사실 원래는 목록보기 권한이 없을 때 나올 메시지입니다만,
그냥 들어왔는데, 로그인해라길래 들어오니까 등급이안된다고 안보여주면 짜증나니까
한번에 필요한 큰 권한을 알려주는..? 뭐 알아서 잘 편집하세요 ㅋ

151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
// 글 보기 권한을 체크해서 권한이 없으면 오류 메세지 출력하도록 처리
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'등과 같이 있는 곳에 해당 숫자를 넣으시면 됩니다 :)

스샷은 귀찮아서.. 

출처 : https://xe1.xpressengine.com/tip/17334915





이온디 님의 SIGNATURE

profile

이온디 웹개발자 커뮤니티, 2021년엔 활성화 되길 바래~


댓글 0
Write a comment You do not have permission to access.
No. Subject Author Date
148 기타 안녕하세요 노라쪼닷컴 입니다 최종적으로 정리해서 말씀드리게요 노라쪼 2021.09.18
147 라이믹스/XE rhymix.2.0.14에서 게시판 분류 편집이 안되는 경우 있으시던가요/XE분류등록이안됩니다/xe 게시판 카테고리 안보임/ 1 이온디 2021.09.12
146 라이믹스/XE 스팸글 등록시 한꺼번에 삭제하는 방법 1 넥스 2021.09.06
145 라이믹스/XE 애드온 관리자인 경우에만 1 넥스 2021.09.04
144 라이믹스/XE 애드온에서 글쓸때작성하는스킨값의 value값을 가져올 방법이 있을까요. 1 넥스 2021.09.04
143 라이믹스/XE xe 디버깅 하는 방법 넥스 2021.09.04
142 라이믹스/XE 전체글/개념글/공지 이건 XE에서 어떻게 구현하면 되는거죠 이온디 2021.09.02
141 라이믹스/XE 최신글위젯(content)에 상담게시판 보여주기 (상담위젯 최신글) 이온디 2021.08.31
라이믹스/XE 라이믹스 게시판 권한 가져오기 이온디 2021.08.20
139 라이믹스 모바일 이미지첨부 자동업로드 이온디 2021.08.31
138 라이믹스/XE 익명으로 게시판 작성하려면 어떻게 하나요? (xe 익명 애드온) 10 anonymous 2021.08.20
137 라이믹스/XE 회원 로그인 해도 user_name 에 임의값을 등록할 수 있는 방법.... file 이온디 2021.08.31
136 라이믹스/XE 레이아웃에서 서브 메뉴에서 첫 번째 메뉴만 출력하기 방법 anonymous 2021.08.31
135 라이믹스/XE 라이믹스/XE 비회원 이메일 알림(비회원 게시판에 관리자댓글 등록되면 글씬이에게 이메일로 푸시알림) anonymous 2021.08.30
134 라이믹스/XE 라이믹스 로그인 풀림 문제 겪으시는 분 계신가요? anonymous 2021.08.31
133 라이믹스/XE 라이믹스/xe에서 내용 접기 기능 있나요? 2 anonymous 2021.08.30
132 HTML/CSS/JS 스와이퍼js, 처음 로딩 시 원하는 n번째가 바로 보이는 방법 anonymous 2021.08.30
131 HTML/CSS/JS div 안에 내용 변경 감지 1 anonymous 2021.08.30
130 HTML/CSS/JS 테이블 태그에 패딩값을 CSS로 어떻게 하면 되나요? anonymous 2021.08.30
129 라이믹스/XE 라이믹스 아임포트 연동 방법 1 anonymous 2021.08.30
1 8