mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-06 18:21:39 +09:00
#124. 페이지 모듈에 열람/관리 권한 추가 및 이를 위해서 zbxe module 설정에 permission 속성 추가
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2601 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
dc24001d46
commit
ce4afeaa13
16 changed files with 229 additions and 24 deletions
|
|
@ -1,6 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module>
|
||||
<grants />
|
||||
<grants>
|
||||
<grant name="view" default="guest">
|
||||
<title xml:lang="ko">열람</title>
|
||||
<title xml:lang="zh-CN">浏览</title>
|
||||
<title xml:lang="jp">閲覧</title>
|
||||
<title xml:lang="en">view</title>
|
||||
</grant>
|
||||
<grant name="manager" default="root">
|
||||
<title xml:lang="ko">관리</title>
|
||||
<title xml:lang="zh-CN">管理</title>
|
||||
<title xml:lang="jp">管理</title>
|
||||
<title xml:lang="en">manager</title>
|
||||
</grant>
|
||||
</grants>
|
||||
<permissions>
|
||||
<permission action="procPageAdminRemoveWidgetCache" target="manager" />
|
||||
<permission action="dispPageAdminContentModify" target="manager" />
|
||||
<permission action="procPageAdminInsert" target="manager" />
|
||||
</permissions>
|
||||
<actions>
|
||||
<action name="dispPageIndex" type="view" index="true" />
|
||||
<action name="dispPageAdminContent" type="view" admin_index="true" standalone="true" />
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@
|
|||
if($module_info->module_srl != $args->module_srl) {
|
||||
$output = $oModuleController->insertModule($args);
|
||||
$msg_code = 'success_registed';
|
||||
$module_info->module_srl = $output->get('module_srl');
|
||||
} else {
|
||||
$output = $oModuleController->updateModule($args);
|
||||
$msg_code = 'success_updated';
|
||||
|
|
@ -49,6 +50,24 @@
|
|||
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
/**
|
||||
* 권한 저장
|
||||
**/
|
||||
// 현 모듈의 권한 목록을 저장
|
||||
$grant_list = $this->xml_info->grant;
|
||||
|
||||
if(count($grant_list)) {
|
||||
foreach($grant_list as $key => $val) {
|
||||
$group_srls = Context::get($key);
|
||||
if($group_srls) $arr_grant[$key] = explode('|@|',$group_srls);
|
||||
}
|
||||
$grants = serialize($arr_grant);
|
||||
}
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->updateModuleGrant($module_info->module_srl, $grants);
|
||||
|
||||
|
||||
$this->add("module_srl", $args->module_srl);
|
||||
$this->add("page", Context::get('page'));
|
||||
$this->setMessage($msg_code);
|
||||
|
|
|
|||
|
|
@ -27,6 +27,15 @@
|
|||
|
||||
// 템플릿 경로 구함 (page의 경우 tpl에 관리자용 템플릿 모아놓음)
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
|
||||
// 권한 그룹의 목록을 가져온다
|
||||
$oMemberModel = &getModel('member');
|
||||
$group_list = $oMemberModel->getGroups();
|
||||
Context::set('group_list', $group_list);
|
||||
|
||||
// module.xml에서 권한 관련 목록을 구해옴
|
||||
$grant_list = $this->xml_info->grant;
|
||||
Context::set('grant_list', $grant_list);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@
|
|||
* @brief 일반 요청시 출력
|
||||
**/
|
||||
function dispPageIndex() {
|
||||
// 권한 체크
|
||||
if(!$this->grant->view) return $this->stop('msg_not_permitted');
|
||||
|
||||
// 템플릿에서 사용할 변수를 Context::set()
|
||||
if($this->module_srl) Context::set('module_srl',$this->module_srl);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
{$page_content}
|
||||
|
||||
<!--@if($grant->is_admin)-->
|
||||
<!--@if($grant->manager)-->
|
||||
<!--%import("./js/page_admin.js")-->
|
||||
<div class="tRight gap1 clear">
|
||||
<a href="#" onclick="doRemoveWidgetCache({$module_info->module_srl}); return false;" class="button"><span>{$lang->cmd_remake_cache}</span></a>
|
||||
<!--@if($grant->is_admin)-->
|
||||
<a href="{getUrl('act','dispPageAdminInfo','module_srl',$module_info->module_srl)}" class="button"><span>{$lang->cmd_setup}</span></a>
|
||||
<!--@end-->
|
||||
<a href="{getUrl('','module','page','act','dispPageAdminContentModify','module_srl',$module_info->module_srl)}" onclick="window.open(this.href,'PageEdit','width=850,height=650,scrollbars=yes,resizable=yes,toolbars=no');return false;" class="button"><span>{$lang->cmd_page_modify}</span></a>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@
|
|||
<param name="layout_srl" target="layout_srl" />
|
||||
<param name="browser_title" target="browser_title" />
|
||||
<param name="is_default" target="is_default" />
|
||||
<param name="view" target="view" />
|
||||
<param name="manager" target="manager" />
|
||||
</parameter>
|
||||
<response callback_func="completeInsertPage">
|
||||
<tag name="error" />
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@
|
|||
<param name="content" target="content" />
|
||||
<param name="browser_title" target="browser_title" />
|
||||
<param name="is_default" target="is_default" />
|
||||
<param name="view" target="view" />
|
||||
<param name="manager" target="manager" />
|
||||
</parameter>
|
||||
<response callback_func="completeInsertPageContent">
|
||||
<tag name="error" />
|
||||
|
|
|
|||
|
|
@ -83,3 +83,28 @@ function completeRemoveWidgetCache(ret_obj) {
|
|||
alert(message);
|
||||
location.reload();
|
||||
}
|
||||
|
||||
/* 권한 관련 */
|
||||
function doSelectAll(obj, key) {
|
||||
var fo_obj = obj.parentNode;
|
||||
while(fo_obj.nodeName != 'FORM') {
|
||||
fo_obj = fo_obj.parentNode;
|
||||
}
|
||||
|
||||
for(var i=0;i<fo_obj.length;i++) {
|
||||
var tobj = fo_obj[i];
|
||||
if(tobj.name == key) tobj.checked=true;
|
||||
}
|
||||
}
|
||||
|
||||
function doUnSelectAll(obj, key) {
|
||||
var fo_obj = obj.parentNode;
|
||||
while(fo_obj.nodeName != 'FORM') {
|
||||
fo_obj = fo_obj.parentNode;
|
||||
}
|
||||
|
||||
for(var i=0;i<fo_obj.length;i++) {
|
||||
var tobj = fo_obj[i];
|
||||
if(tobj.name == key) tobj.checked = false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@
|
|||
<input type="hidden" name="module_category_srl" value="{$module_info->module_category_srl}" />
|
||||
<input type="hidden" name="browser_title" value="{$module_info->browser_title}" />
|
||||
<input type="hidden" name="layout_srl" value="{$module_info->layout_srl}" />
|
||||
<!--@foreach($grant_list as $key => $val)-->
|
||||
<input type="hidden" name="{$key}" value="<!--@if(is_array($module_info->grants[$key]))-->{implode('|@|',$module_info->grants[$key])}<!--@end-->" />
|
||||
<!--@end-->
|
||||
|
||||
<div class="widget_list">
|
||||
<!--@foreach($widget_list as $widget)-->
|
||||
|
|
|
|||
|
|
@ -59,17 +59,46 @@
|
|||
<p>{$lang->about_layout}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="tRight">
|
||||
<span class="button"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
|
||||
<a href="{getUrl('','module','page','act','dispPageAdminContentModify','module_srl',$module_info->module_srl)}" onclick="window.open(this.href,'PageEdit','width=850,height=650,scrollbars=yes,resizable=yes,toolbars=no');return false;" class="button"><span>{$lang->cmd_page_modify}</span></a>
|
||||
<!--@if($module=="admin")-->
|
||||
<a href="{getUrl('act','dispPageAdminContent','module_srl','')}" class="button"><span>{$lang->cmd_list}</span></a>
|
||||
<!--@else-->
|
||||
<a href="{getUrl('act','')}" class="button"><span>{$lang->cmd_back}</span></a>
|
||||
<!--@end-->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- 권한 출력 -->
|
||||
<table cellspacing="0" class="tableType3 gap1">
|
||||
<col width="130" />
|
||||
<col width="*" />
|
||||
<col width="80" />
|
||||
<col width="80" />
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{$lang->grant}</th>
|
||||
<th scope="col" colspan="3">{$lang->target}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<!--@foreach($grant_list as $key => $val)-->
|
||||
<tr>
|
||||
<th scope="row">{$val->title}</th>
|
||||
<td class="left">
|
||||
<!--@foreach($group_list as $k => $v)-->
|
||||
<input type="checkbox" class="checkbox" name="{$key}" value="{$v->group_srl}" id="grant_{$key}_{$v->group_srl}" <!--@if(is_array($module_info->grants[$key])&&in_array($v->group_srl,$module_info->grants[$key]))-->checked="checked"<!--@end-->/>
|
||||
<label for="grant_{$key}_{$v->group_srl}">{$v->title}</label>
|
||||
<!--@end-->
|
||||
</td>
|
||||
<td><a href="#" onclick="doSelectAll(this, '{$key}')" class="blue">{$lang->cmd_select_all}</a></td>
|
||||
<td><a href="#" onclick="doUnSelectAll(this, '{$key}')" class="red">{$lang->cmd_unselect_all}</a></td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="tRight gap1">
|
||||
<span class="button"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
|
||||
<a href="{getUrl('','module','page','act','dispPageAdminContentModify','module_srl',$module_info->module_srl)}" onclick="window.open(this.href,'PageEdit','width=850,height=650,scrollbars=yes,resizable=yes,toolbars=no');return false;" class="button"><span>{$lang->cmd_page_modify}</span></a>
|
||||
<!--@if($module=="admin")-->
|
||||
<a href="{getUrl('act','dispPageAdminContent','module_srl','')}" class="button"><span>{$lang->cmd_list}</span></a>
|
||||
<!--@else-->
|
||||
<a href="{getUrl('act','')}" class="button"><span>{$lang->cmd_back}</span></a>
|
||||
<!--@end-->
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -60,6 +60,36 @@
|
|||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- 권한 출력 -->
|
||||
<table cellspacing="0" class="tableType3 gap1">
|
||||
<col width="130" />
|
||||
<col width="*" />
|
||||
<col width="80" />
|
||||
<col width="80" />
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{$lang->grant}</th>
|
||||
<th scope="col" colspan="3">{$lang->target}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<!--@foreach($grant_list as $key => $val)-->
|
||||
<tr>
|
||||
<th scope="row">{$val->title}</th>
|
||||
<td class="left">
|
||||
<!--@foreach($group_list as $k => $v)-->
|
||||
<input type="checkbox" class="checkbox" name="{$key}" value="{$v->group_srl}" id="grant_{$key}_{$v->group_srl}" <!--@if(is_array($module_info->grants[$key])&&in_array($v->group_srl,$module_info->grants[$key]))-->checked="checked"<!--@end-->/>
|
||||
<label for="grant_{$key}_{$v->group_srl}">{$v->title}</label>
|
||||
<!--@end-->
|
||||
</td>
|
||||
<td><a href="#" onclick="doSelectAll(this, '{$key}')" class="blue">{$lang->cmd_select_all}</a></td>
|
||||
<td><a href="#" onclick="doUnSelectAll(this, '{$key}')" class="red">{$lang->cmd_unselect_all}</a></td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="tRight gap1">
|
||||
<span class="button"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue