https://web.archive.org/web/20161129142731/http://www.xeschool.com/xe/xenote_module_admin_grant_skininfo

Module Admin Action Grant & SkinInfo

액션의 권한 관리와 프로트 엔드 스킨의 정보를 출력하기 위한 과정이다. 액션 권한(permission)은 함수의 실행 권한을 확인하여 관리자가 아닌 경우 요청을 받아들이지 않는 것을 말한다. 따라서 액션 명세서인 module.xml 파일에서 <permissions> 요소에 액션 이름을 추가하고 target 속성으로 관리자(manager)를 설정하면 된다.

<grants> 요소는 프론트 엔드 뷰(View)에서 사용될 권한 관리 요소이다. 예를 들어 게시판에서 목록을 보거나 새로운 글을 작성하고자 할때 설정된 권한을 확인해 보고 동작을 허용하겠다는 의미이다. 따라서 액션 명세서에 추가된 내용은 프론트 엔드 뷰(View)의 출력 내용을 담당하고 있는 example.view.php 파일에서 각 함수에 대해 설정에 해당하는 권한을 확인해 보는 메소드가 추가 되어야 한다.

액션에 대한 권한(permissions) 설정은 module.xml 파일에서만 설정해도 동작하게 된다. <grants> 요소는 관리자 설정 화면에서 권한 관리 페이지를 통해 설정한다. 이번 과정에서는 <grants> 권한 관리 페이지와 사용자 뷰(View)를 위한 스킨 파일의 정보를 출력하는 페이지를 추가해 보자.

1. 권한 추가

module.xml 파일을 열고 이전 과정에서 작성했던 액션에 추가적으로 다음과 같은 내용을 포함하여 업로드한다.

conf/module.xml

<grants> 요소에서 name 속성은 권한 설정을 구분하기 위한 변수와 같은 의미이다. 권한의 기본 설정은 "모든 사용자"(guest)로 설정되어 있다. <grants> 요소는 모듈의 언어팩을 지원 받을 수 있도록 작성한다. 다국어를 사용하지 않는 경우 위와 같이 한국어만 설정해도 된다.

<grants> 요소에서 설정된 권한은 모듈의 뷰(View) 파일(모듈.view.php) 함수에서 다음과 같이 권한에 따른 설정을 확인해 본다.

listBoard

(게시판 모듈에서) 만약 목록(list)에 대한 권한이 없다면 맴버 메소드인 권한 오류 메시지를 출력하는 함수를 실행하고 함수의 파싱을 끝낸다. 결국 요청했던 액션은 실행되지 않을 것이다. 권한에 대한 설정과 사용법은 XE 모듈 전반에 걸쳐 사용되고 있기 때문에 충분히 읽어보고 적용해 보는 것이 좋은 공부방법일 것 같다.(p.24)

2. 모듈 관리 템플릿 파일

이전 작업 과정에서 모듈의 권한 관리와 스킨 관리를 위한 액션은 이미 추가되어 있기 때문에 다음과 같이 모듈의 관리를 위한 템플릿 파일 2개를 tpl 폴더에 업로드 한다.

tpl/grant_list.html
tpl/skin_info.html

별거 없다! 내용 변수 {$content} 와 똑 같다. 왜냐하면 XE코어 관리자 모듈이 돕고 있기 때문이다...^^ 권한과 스킨의 정보는 XE코어 관리자 모듈이 알아서 출력해 준다. 따라서 이전에 추가했던 인클루드(include)문과 권한 관리 또는 스킨 정보 관리 출력 변수만 포함하면 된다. 예제로 만들어본 example 모듈에서 확장변수에 대한 처리는 포함되어 있지 않다. 모듈의 기능과 관련하여 확장변수의 사용은 특별한 용도로 추가될 수 있기 때문이다. 기본적인 예제를 이해하기 위해 확장변수의 처리는 포함하지 않았다.

3. 페이지 네비게이션 추가

관리자 뷰(View) 파일인 index.html 파일을 열고 맨 하단에 다음과 같이 페이지 네비게이션 구현을 위한 구문을 추가하자. 이전 과정에서 이미 페이지에 대한 처리를 포함하였기 때문에 다음의 내용을 포함하게 되면 관리자 목록 하단에서 잘 동작해 줄 것이다...^^