git-svn-id: http://xe-core.googlecode.com/svn/trunk@174 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-02-23 06:55:45 +00:00
parent 9c81a2ce69
commit 3de7cf9648
18 changed files with 113 additions and 105 deletions

View file

@ -50,7 +50,6 @@
if(!$document_srl) $this->document_srl = Context::get('document_srl');
else $this->document_srl = $document_srl;
}
/**

View file

@ -81,24 +81,37 @@
// 권한 설정
if($xml_info->grant) {
// 이 모듈에 action.xml에서 선언된 권한 목록을 루프
foreach($xml_info->grant as $grant_name => $grant_item) {
// 제목과 기타 설정 없을 경우의 기본 권한(guest, member, root)에 대한 변수 설정
$title = $grant_item->title;
$default = $grant_item->default;
$grant->{$grant_name} = false;
// 관리자이면 모든 권한에 대해 true 설정
if($grant->is_admin) {
$grant->{$grant_name} = true;
continue;
}
if(count($user_group)) {
foreach($user_group as $group_srl) {
if(in_array($group_srl, $this->module_info->grants[$grant_name])) {
$grant->{$grant_name} = true;
break;
// 일단 현재 권한에 대해 false 지정
$grant->{$grant_name} = false;
// 모듈의 개별 설정에서 이 권한에 대한 그룹 지정이 있으면 체크
if(count($this->module_info->grants[$grant_name])) {
$group_srls = $this->module_info->grants[$grang_name];
if(count($user_group)) {
foreach($user_group as $group_srl) {
if(in_array($group_srl, $group_srls)) {
$grant->{$grant_name} = true;
break;
}
}
}
}
// 별도의 지정이 없으면 default값으로 권한 체크
} else {
switch($default) {
case 'member' :
@ -111,6 +124,7 @@
$grant->{$grant_name} = true;
break;
}
}
}
}

View file

@ -18,7 +18,7 @@
/**
* @brief debug mode = true 일때 files/_debug_message.php 디버그 내용이 쌓임
**/
define('__DEBUG__', false);
define('__DEBUG__', true);
if(__DEBUG__) {
// php5이상이면 error handling을 handleError() 로 set

View file

@ -326,23 +326,19 @@
$module_srl = Context::get('module_srl');
// 현 모듈의 권한 목록을 가져옴
$oBoardModel = &getModel('board');
$grant_list = $oBoardModel->grant_list;
$grant_list = $this->xml_info->grant;
if(count($grant_list)) {
foreach($grant_list as $grant) {
$group_srls = Context::get($grant);
if($group_srls) $arr_grant[$grant] = explode(',',Context::get($grant));
foreach($grant_list as $key => $val) {
$group_srls = Context::get($key);
if($group_srls) $arr_grant[$key] = explode(',',$group_srls);
}
$grant = serialize($arr_grant);
$grants = serialize($arr_grant);
}
$oModuleController = &getController('module');
$oModuleController->updateModuleGrant($module_srl, $grant);
$oModuleController->updateModuleGrant($module_srl, $grants);
$this->add('module','board');
$this->add('act','dispAdminGrantInfo');
$this->add('page',Context::get('page'));
$this->add('module_srl',Context::get('module_srl'));
$this->setMessage('success_registed');
}
@ -436,8 +432,10 @@
**/
function procInsertBoard() {
// 일단 입력된 값들을 모두 받아서 db 입력항목과 그외 것으로 분리
$args = Context::gets('module_srl','mid','skin','use_category','browser_title','description','is_default','header_text','footer_text','admin_id');
$args = Context::gets('module_srl','board_name','skin','use_category','browser_title','description','is_default','header_text','footer_text','admin_id');
$args->module = 'board';
$args->mid = $args->board_name;
unset($args->board_name);
if($args->is_default!='Y') $args->is_default = 'N';
if($args->use_category!='Y') $args->use_category = 'N';
@ -447,12 +445,11 @@
unset($extra_var->act);
unset($extra_var->page);
// module_srl이 있으면 원본을 구해온다
$oModuleModel = &getModel('model');
// module_srl이 넘어오면 원 모듈이 있는지 확인
if($args->module_srl) {
$oModuleModel = &getModel('module');
$module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl);
// 만약 원래 모듈이 없으면 새로 입력하기 위한 처리
if($module_info->module_srl != $args->module_srl) unset($args->module_srl);
}
@ -463,19 +460,19 @@
// is_default=='Y' 이면
if($args->is_default=='Y') $oModule->clearDefaultModule();
$oModuleController = &getController('module');
// module_srl의 값에 따라 insert/update
if(!$args->module_srl) {
$output = $oModule->insertModule($args);
$output = $oModuleController->insertModule($args);
$msg_code = 'success_registed';
} else {
$output = $oModule->updateModule($args);
$output = $oModuleController->updateModule($args);
$msg_code = 'success_updated';
}
if(!$output->toBool()) return $output;
$this->add('module','board');
$this->add('act','dispAdminBoardInfo');
$this->add('page',Context::get('page'));
$this->add('module_srl',$output->get('module_srl'));
$this->setMessage($msg_code);
@ -493,7 +490,6 @@
if(!$output->toBool()) return $output;
$this->add('module','board');
$this->add('act','dispAdminContent');
$this->add('page',Context::get('page'));
$this->setMessage('success_deleted');
}
@ -507,12 +503,10 @@
$category_title = Context::get('category_title');
// module_srl이 있으면 원본을 구해온다
$oDocumentModel = &getModel('document');
$output = $oDocumentModel->insertCategory($module_srl, $category_title);
$oDocumentController = &getController('document');
$output = $oDocumentController->insertCategory($module_srl, $category_title);
if(!$output->toBool()) return $output;
$this->add('module','board');
$this->add('act','dispAdminCategoryInfo');
$this->add('page',Context::get('page'));
$this->add('module_srl',$module_srl);
$this->setMessage('success_registed');
@ -522,6 +516,7 @@
* @brief 카테고리의 내용 수정
**/
function procUpdateCategory() {
$module_srl = Context::get('module_srl');
$category_srl = Context::get('category_srl');
$mode = Context::get('mode');
@ -551,7 +546,8 @@
break;
}
if(!$output->toBool()) return $output;
$this->add('module_srl', $selected_category->module_srl);
$this->add('module_srl', $module_srl);
$this->setMessage($msg_code);
}
}

View file

@ -30,7 +30,10 @@
if(!$module_info) {
Context::set('module_srl','');
$this->act = 'list';
} else Context::set('module_info',$module_info);
} else {
$this->module_info = $module_info;
Context::set('module_info',$module_info);
}
}
// 일반 action일 경우
@ -391,13 +394,6 @@
// module_srl 값이 없다면 그냥 index 페이지를 보여줌
if(!Context::get('module_srl')) return $this->dispAdminContent();
// 요청받은 모듈의 정보를 구함
$oModuleModel = &getModel('module');
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
// template에서 사용하기 위해 설정
Context::set('module_info',$module_info);
// 템플릿 파일 지정
$this->setTemplateFile('board_info');
}
@ -499,8 +495,6 @@
// module.xml에서 권한 관련 목록을 구해옴
$grant_list = $this->xml_info->grant;
// 권한 목록 세팅
Context::set('grant_list', $grant_list);
// 권한 그룹의 목록을 가져온다

View file

@ -27,7 +27,7 @@
</tr>
<tr>
<th>{$lang->admin_id}</th>
<td>{$module_info->admin_id}</td>
<td>{implode(",",$module_info->admin_id)}</td>
</tr>
<tr>
<td colspan="2">

View file

@ -86,7 +86,7 @@
</tr>
<tr>
<th rowspan="2">{$lang->admin_id}</th>
<td><textarea name="admin_id">{$module_info->admin_id}</textarea></td>
<td><textarea name="admin_id">{implode(",",$module_info->admin_id)}</textarea></td>
</tr>
<tr>
<td>{$lang->about_admin_id}</td>

View file

@ -5,6 +5,7 @@
<!-- 카테고리의 위/아래, 삭제와 관련된 form -->
<form id="fo_category_info" action="./" method="post">
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="act" value="procUpdateCategory" />
<input type="hidden" name="category_srl" value="" />
<input type="hidden" name="mode" value="" />
@ -40,7 +41,7 @@
</div>
<!-- 카테고리 추가 -->
<form action="./admin.php" method="post" onsubmit="return procFilter(this, insert_category)" enctype="multipart/form-data">
<form action="./" method="post" onsubmit="return procFilter(this, insert_category)">
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="category_srl" value="" />

View file

@ -5,6 +5,7 @@
<!-- 카테고리 수정 -->
<!--@if($selected_category)-->
<form action="./" method="post" onsubmit="return procFilter(this, update_category)" enctype="multipart/form-data">
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="category_srl" value="{$selected_category->category_srl}" />
<input type="hidden" name="mode" value="update" />

View file

@ -3,7 +3,7 @@
<node target="act" required="true" />
<node target="module_srl" required="true" />
</form>
<response callback_func="completeBoardDelete">
<response callback_func="completeDeleteBoard">
<tag name="error" />
<tag name="message" />
<tag name="sid" />

View file

@ -1,9 +1,21 @@
<filter name="insert_board" module="board" act="procInsertboard" confirm_msg_code="confirm_submit">
<filter name="insert_board" module="board" act="procInsertBoard" confirm_msg_code="confirm_submit">
<form>
<node target="mid" required="true" filter="alpha_number" />
<node target="browser_title" required="true" maxlength="250" />
</form>
<response callback_func="completeBoardInsert">
<parameter>
<param name="board_name" target="mid" />
<param name="module_srl" target="module_srl" />
<param name="skin" target="skin" />
<param name="use_category" target="use_category" />
<param name="browser_title" target="browser_title" />
<param name="is_default" target="is_default" />
<param name="description" target="description" />
<param name="header_text" target="header_text" />
<param name="footer_text" target="footer_text" />
<param name="admin_id" target="admin_id" />
</parameter>
<response callback_func="completeInsertBoard">
<tag name="error" />
<tag name="message" />
<tag name="module" />

View file

@ -1,15 +1,12 @@
<filter name="insert_category" module="board" act="procInsertCategory" confirm_msg_code="confirm_submit">
<form>
<node target="sid" required="true" />
<node target="act" required="true" />
<node target="module_srl" required="true" />
<node target="category_title" required="true" />
</form>
<response callback_func="completeCategoryUpdate">
<item name="error" />
<item name="message" />
<item name="act" />
<item name="page" />
<item name="module_srl" />
<response callback_func="completeUpdateCategory">
<tag name="error" />
<tag name="message" />
<tag name="page" />
<tag name="module_srl" />
</response>
</filter>

View file

@ -1,15 +1,11 @@
<filter id="insert_grant" confirm_msg_code="confirm_submit">
<field>
<item target="sid" required="true" />
<item target="act" required="true" />
<item target="module_srl" required="true" filter="number" />
</field>
<response>
<item name="error" />
<item name="message" />
<item name="sid" />
<item name="act" />
<item name="page" />
<item name="module_srl" />
<filter name="insert_grant" module="board" act="procInsertGrant" confirm_msg_code="confirm_submit">
<form>
<node target="module_srl" required="true" filter="number" />
</form>
<response callback_func="completeInsertGrant">
<tag name="error" />
<tag name="message" />
<tag name="page" />
<tag name="module_srl" />
</response>
</filter>

View file

@ -1,13 +1,11 @@
<filter id="update_category">
<field>
<item target="sid" required="true" />
<item target="act" required="true" />
<item target="category_srl" required="true" />
<item target="mode" required="true" />
</field>
<response>
<item name="error" />
<item name="message" />
<item name="module_srl" />
<filter name="update_category" module="board" act="procUpdateCategory">
<form>
<node target="category_srl" required="true" />
<node target="mode" required="true" />
</form>
<response callback_func="completeUpdateCategory">
<tag name="error" />
<tag name="message" />
<tag name="module_srl" />
</response>
</filter>

View file

@ -21,7 +21,7 @@
<div>
<!--@foreach($group_list as $k => $v)-->
<span>
<input type="checkbox" name="{$key}" value="{$v->group_srl}" id="grant_{$key}_{$v->group_srl}" <!--@if(is_array($module_info->grant)&&in_array($v->group_srl,$module_info->grant[$key]))-->checked="true"<!--@end-->/>
<input type="checkbox" name="{$key}" value="{$v->group_srl}" id="grant_{$key}_{$v->group_srl}" <!--@if(is_array($module_info->grants)&&in_array($v->group_srl,$module_info->grants[$key]))-->checked="true"<!--@end-->/>
<label for="grant_{$key}_{$v->group_srl}">{$v->title}</label>
</span>
<!--@end-->

View file

@ -5,31 +5,31 @@
**/
/* 모듈 생성 후 */
function completeBoardInsert(ret_obj) {
function completeInsertBoard(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
var module = ret_obj['module'];
var act = ret_obj['act'];
var page = ret_obj['page'];
var module_srl = ret_obj['module_srl'];
alert(message);
var url = "./?module=admin&mo="+module+"&module_srl="+module_srl+"&page="+page+"&act="+act;
var url = "./?module=admin&mo=board&module_srl="+module_srl+"&act=dispAdminBoardInfo";
if(page) url += "&page="+page;
location.href = url;
}
/* 모듈 삭제 후 */
function completeBoardDelet(ret_obj) {
function completeDeleteBoard(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
var mo = ret_obj['mo'];
var act = ret_obj['act'];
var page = ret_obj['page'];
alert(message);
var url = "./?module=admin&mo="+mo+"&page="+page+"&act="+act;
var url = "./?module=admin&mo=board&act=dispAdminContent";
if(page) url += "&page="+page;
location.href = url;
}
@ -45,14 +45,16 @@ function doUpdateCategory(category_srl, mode, message) {
}
/* 카테고리 정보 수정 후 */
function completCategoryUpdate(ret_obj) {
function completeUpdateCategory(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
var module_srl = ret_obj['module_srl'];
var page = ret_obj['page'];
alert(message);
var url = "./?module=admin&mo=board&module_srl="+module_srl+"&act=dispAdminCategoryInfo";
if(page) url += "&page="+page;
location.href = url;
}
@ -75,17 +77,17 @@ function doUnSelectAll(obj, key) {
}
}
function completedInsertGrant(ret_obj) {
function completeInsertGrant(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
var mo = ret_obj['mo'];
var act = ret_obj['act'];
var page = ret_obj['page'];
var module_srl = ret_obj['module_srl'];
alert(message);
var url = "./?module=admin&mo="+mo+"&module_srl="+module_srl+"&page="+page+"&act="+act;
var url = "./?module=admin&mo=board&module_srl="+module_srl+"&act=dispAdminGrantInfo";
if(page) url += "&page="+page;
location.href = url;
}

View file

@ -86,11 +86,11 @@
/**
* @brief 모듈의 권한 정보 변경
**/
function updateModuleGrant($module_srl, $grant) {
function updateModuleGrant($module_srl, $grants) {
$oDB = &DB::getInstance();
$args->module_srl = $module_srl;
$args->grant = $grant;
$args->grants = $grants;
$output = $oDB->executeQuery('module.updateModuleGrant', $args);
return $output;
}

View file

@ -52,7 +52,7 @@
/**
* @brief module_srl에 해당하는 모듈의 정보를 구함
**/
function getModuleInfoByModuleSrl($module_srl='') {
function getModuleInfoByModuleSrl($module_srl) {
// db객체 생성
$oDB = &DB::getInstance();
@ -60,7 +60,7 @@
$args->module_srl = $module_srl;
$output = $oDB->executeQuery('module.getMidInfo', $args);
if(!$output->data) return;
return $this->arrangeModuleInfo($output->data);
}
@ -68,7 +68,7 @@
* @brief DB에서 가져온 모듈 정보에서 grant, extraVar등의 정리
**/
function arrangeModuleInfo($source_module_info) {
if(!$source_module_info) return;
if(!$source_module_info || !is_object($source_module_info) ) return;
// serialize되어 있는 변수들 추출
$extra_vars = $source_module_info->extra_vars;
@ -91,9 +91,7 @@
if($grants) $module_info->grants = unserialize($grants);
// 관리자 아이디의 정리
if($module_info->admin_id) {
$module_info->admin_id = explode(',',$module_info->admin_id);
}
if($admin_id) $module_info->admin_id = explode(',',$admin_id);
return $module_info;
}