모듈 제작하면서 따로 메모해 둘 필요가 있을것 같아 이곳에 기록을 남김니다.


정해진 그룹만 특정 권한을 부여하는 방법입니다.


먼저, 모듈 정보에 입력항목을 추가하고 싶을때...

conf 폴더내 module.conf 파일에서 admin_index 또는 setup_index 의 액션 명을 찾아 액션 명령어 함수가 있는 파일을 불러오기 합니다.


예를 들어, 액션명이 dispTestAdminInsertTest 이라고 할때 이 액션은 관리자용 액션이라서 test.admin.view.php 라는 파일에 액션 함수가 있습니다.

dispTestAdminInsertTest 액션이 관리자 전용인지 어떻게 알수 있냐고요? 액션명에 Admin 이 있으면 관리자 페이지에서 사용되는 액션 함수라는 의미입니다.


test.admin.view.php 라는 파일내에서 dispTestAdminInsertTest 라는 함수명을 검색합니다.


보통 함수 마지막 부분에 다음과 같은 구문이 있습니다.

$this->setTemplateFile('insert_test');


dispTestAdminInsertTest 라는 액션을 실행하면 'insert_test.html' 라는 파일의 내용이 출력됩니다.

그리고 'insert_test.html' 파일의 저장 경로는 dispTestAdminInsertTest 가 관리자 전용 액션함수라서 모듈 폴더내의 tpl 폴더내에 있습니다.


'' 파일 내용을 보면 보통 html 입력 폼 구문이 있습니다. 즉, 해당 모듈의 환경 설정에 대한 입력 항목들입니다.


여기서 예를들어 그룹을 선택할 수 있는 항목을 추가해 보겠습니다.


<div class="x_control-group">
<label class="x_control-label">그룹</label>
<div class="x_controls">
<label for="grant_to_all" class="x_inline"><input type="radio" name="send_grant_all" id="grant_to_all" value="Y" checked="checked"|cond="$module_info->send_grant_all== 'Y'" /> 모든 사용자</label>
<label for="grant_to_login_user" class="x_inline"><input type="radio" name="send_grant_all" id="grant_to_login_user" value="N" checked="checked"|cond="$module_info->send_grant_all== 'N'" /> 로그인 사용자</label>
<label for="grant_to_group" class="x_inline"><input type="radio" name="send_grant_all" id="grant_to_group" value="S" checked="checked"|cond="$module_info->send_grant_all== 'S'" /> 선택한 그룹 사용자</label>
</div>
</div>

<div class="x_control-group" id="group_select" style="margin-top:8px;display:none;">
<label class="x_control-label">그룹명</label>
<div class="x_controls">
<label loop="$group_list => $group_srl, $group_item" for="user_group" class="x_inline">
{@ $user_group = 'user_group'.$group_srl;}
<input type="checkbox" name="{$user_group}" value="{$group_item->title}"<!--@if($module_info->{$user_group} == $group_item->title)--> checked="checked"<!--@end--> id="{$user_group}" />
{$group_item->title}
</label>
</div>
</div>

아래 코드를 html 파일에 추가합니다.

'선택한 그룹 사용자' 라디오 버튼을 선택하면 그룹 선택창이 출력이 되고, 만약 '모든 사용자' 또는 '로그인 사용자' 등의 다른 라디오 버튼을 선택하면 그룹 선택한 값을 초기화되는 jQuery 구문입니다.


<script>

    jQuery( function() {

var grantGroup = jQuery('input:radio[name="send_grant_all"]:checked').val();

if(grantGroup =='S') jQuery("#group_select").css("display","block");

jQuery('input:radio[name="send_grant_all"]').change( function(event) {

if(jQuery(this).val() == "S") jQuery("#group_select").css("display","block");

else

{

jQuery("[id^=user_group]").removeAttr('checked');

jQuery("#group_select").css("display","none");

}

} );

} );

</script>


스킨 파일드의 모듈 항목이 출력되는 파일의 권한 조정이 필요한 부분에 아래 코드를 추가하면 됩니다.

예를 들어 폼 전송 버튼을 특정 그룹 사용자에게만 출력되도록 하려면...

<!--@if($is_logged&&$module_info->send_grant_all=='S')-->

<!--@foreach($group_list as $key => $group_info)-->

{@ $user_group = 'user_group'.$group_info->group_srl;}

<!--@if(in_array($module_info->{$user_group},$logged_info->group_list))-->

{@ $module_info->send_grant_all='Y';}

<!--@end-->

<!--@end-->

<!--@end-->


<!--@if($module_info->send_grant_all=='Y')-->

<input type="submit" value=" 전송 / SEND ">

<!--@end-->


만약 $group_list 변수에 아무런 값이 출력되지 않는다면

액션 함수 내에 아래 구문을 추가하면 그룹 정보 변수인 group_list 가 페이지로 전달됩니다.

// Get a list of groups

$oMemberModel = getModel('member');

$group_list = $oMemberModel->getGroups($module_info->site_srl);

Context::set('group_list', $group_list);




번호 제목 글쓴이 날짜 조회 수
61 XE 메일 발송 시 SMTP 서버 설정하는 방법 Study4U 2016.05.19 1263
60 ruleset 기본 예제 Study4U 2015.10.01 275
59 다국어 추가하는 방법 [1] Study4U 2015.07.24 267
58 레이아웃에 템플릿 또는 컬러셋 적용방법 file Study4U 2015.02.20 309
57 확장변수 항목에 required 와 placeholder 적용 file Study4U 2014.12.09 305
» 그룹에 따라 선택적으로 권한 부여하기 Study4U 2014.11.14 3877
55 XE Trigger 완전 정복하기 4편 file Study4U 2014.08.03 425
54 XE Trigger 완전 정복하기 3편 Study4U 2014.08.03 598
53 XE Trigger 완전 정복하기 2편 file Study4U 2014.08.03 789
52 XE Trigger 완전 정복하기 1편 file Study4U 2014.08.03 1154
51 XE 회원 메뉴 또는 팝업메뉴 추가, 편집방법 Study4U 2014.05.20 1015
50 윈도우에서 웹서버 [ NGINX + PHP + MySQL ] 설치방법 Study4U 2012.11.08 7107
49 XE 모듈 만들기 Study4U 2012.09.13 7360
48 게시글 본문에 동영상이나 이미지 슬라이드가 자동 출력되게 하는 방법 [4] Study4U 2012.09.11 3396
47 소셜댓글을 게시판의 기본 댓글로 사용하는 방법입니다. Study4U 2012.09.10 3380
46 xe 슬라이더 사용방법 file Study4U 2012.07.21 3164
45 XE 에서 일반 PHP 구문 사용방법 Study4U 2012.07.03 5048
44 FLV, MP4 영상 출력 점검하기 file Study4U 2012.06.02 1949
43 미디어보드 사용 설명서 file Study4U 2012.05.23 1748
42 미디어 보드의 스킨 옵션 설명서입니다. file Study4U 2012.04.16 2597