mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-10 20:44:28 +09:00
게시글 관리시 해당 모듈의 최고관리자로 지정된 사용자뿐 아니라 관리 그룹에 속한 대상들도 글 관리 권한을 가지도록 수정
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@3491 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
f14af52fb3
commit
823ee82b1d
4 changed files with 54 additions and 1 deletions
|
|
@ -89,6 +89,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 스팸 처리가 되지 않도록 스팸필터 설정
|
||||||
|
$oSpamController = &getController('spamfilter');
|
||||||
|
$oSpamController->setAvoidLog();
|
||||||
|
|
||||||
if($type == 'move') {
|
if($type == 'move') {
|
||||||
if(!$module_srl) return new Object(-1, 'fail_to_move');
|
if(!$module_srl) return new Object(-1, 'fail_to_move');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -117,10 +117,27 @@
|
||||||
// 최고 관리자가 아닌 경우 자신의 관리 대상 모듈만 구해옴
|
// 최고 관리자가 아닌 경우 자신의 관리 대상 모듈만 구해옴
|
||||||
$logged_info = Context::get('logged_info');
|
$logged_info = Context::get('logged_info');
|
||||||
$user_id = $logged_info->user_id;
|
$user_id = $logged_info->user_id;
|
||||||
|
$group_list = $logged_info->group_list;
|
||||||
|
|
||||||
if($logged_info->is_admin != 'Y') {
|
if($logged_info->is_admin != 'Y') {
|
||||||
foreach($module_list as $key => $val) {
|
foreach($module_list as $key => $val) {
|
||||||
$info = $oModuleModel->arrangeModuleInfo($val);
|
$info = $oModuleModel->arrangeModuleInfo($val);
|
||||||
if(!in_array($user_id, $info->admin_id)) unset($module_list[$key]);
|
|
||||||
|
// 직접 최고 관리자로 지정이 안되어 있으면 그룹을 체크
|
||||||
|
if(!in_array($user_id, $info->admin_id)) {
|
||||||
|
|
||||||
|
$is_granted = false;
|
||||||
|
$manager_group = $info->grants['manager'];
|
||||||
|
if(count($group_list) && count($manager_group)) {
|
||||||
|
foreach($group_list as $group_srl => $group_info) {
|
||||||
|
if(in_array($group_srl, $manager_group)) {
|
||||||
|
$is_granted = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!$is_granted) unset($module_list[$key]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Context::set('module_list', $module_list);
|
Context::set('module_list', $module_list);
|
||||||
|
|
|
||||||
|
|
@ -192,6 +192,7 @@
|
||||||
// 사용자 아이디를 구함
|
// 사용자 아이디를 구함
|
||||||
$logged_info = Context::get('logged_info');
|
$logged_info = Context::get('logged_info');
|
||||||
$user_id = $logged_info->user_id;
|
$user_id = $logged_info->user_id;
|
||||||
|
$group_list = $logged_info->group_list;
|
||||||
|
|
||||||
// 모듈 요청에 사용된 변수들을 가져옴
|
// 모듈 요청에 사용된 변수들을 가져옴
|
||||||
$args = Context::getRequestVars();
|
$args = Context::getRequestVars();
|
||||||
|
|
@ -206,7 +207,17 @@
|
||||||
$module_info = $oModuleModel->getModuleInfoByDocumentSrl($args->srl);
|
$module_info = $oModuleModel->getModuleInfoByDocumentSrl($args->srl);
|
||||||
if(!$module_info) return false;
|
if(!$module_info) return false;
|
||||||
|
|
||||||
|
// 직접 관리자로 선택하였을 경우 확인
|
||||||
if(is_array($module_info->admin_id) && in_array($user_id, $module_info->admin_id)) return true;
|
if(is_array($module_info->admin_id) && in_array($user_id, $module_info->admin_id)) return true;
|
||||||
|
|
||||||
|
// 관리자 그룹으로 등록되어 있을 경우 확인
|
||||||
|
$manager_group = $module_info->grants['manager'];
|
||||||
|
if(count($group_list) && count($manager_group)) {
|
||||||
|
foreach($group_list as $group_srl => $group_info) {
|
||||||
|
if(in_array($group_srl, $manager_group)) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// 체크된 게시글을 관리하는 action
|
// 체크된 게시글을 관리하는 action
|
||||||
|
|
@ -229,6 +240,14 @@
|
||||||
if(!$module_info) return false;
|
if(!$module_info) return false;
|
||||||
|
|
||||||
if(is_array($module_info->admin_id) && in_array($user_id, $module_info->admin_id)) return true;
|
if(is_array($module_info->admin_id) && in_array($user_id, $module_info->admin_id)) return true;
|
||||||
|
|
||||||
|
// 관리자 그룹으로 등록되어 있을 경우 확인
|
||||||
|
$manager_group = $module_info->grants['manager'];
|
||||||
|
if(count($group_list) && count($manager_group)) {
|
||||||
|
foreach($group_list as $group_srl => $group_info) {
|
||||||
|
if(in_array($group_srl, $manager_group)) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,19 @@
|
||||||
function init() {
|
function init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 배치작업등을 할때 스팸필터의 사용을 중지 시킬 필요가 있을 경우 호출
|
||||||
|
**/
|
||||||
|
function setAvoidLog() {
|
||||||
|
$_SESSION['avoid_log'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 글 작성시 글 작성 시간 체크 및 금지 ip/단어 처리 루틴
|
* @brief 글 작성시 글 작성 시간 체크 및 금지 ip/단어 처리 루틴
|
||||||
**/
|
**/
|
||||||
function triggerInsertDocument(&$obj) {
|
function triggerInsertDocument(&$obj) {
|
||||||
|
if($_SESSION['avoid_log']) return new Object();
|
||||||
|
|
||||||
// 로그인 여부, 로그인 정보, 권한 유무 체크
|
// 로그인 여부, 로그인 정보, 권한 유무 체크
|
||||||
$is_logged = Context::get('is_logged');
|
$is_logged = Context::get('is_logged');
|
||||||
$logged_info = Context::get('logged_info');
|
$logged_info = Context::get('logged_info');
|
||||||
|
|
@ -53,6 +62,8 @@
|
||||||
* @brief 댓글 작성 시간 및 금지 ip/ 단어 처리 루틴
|
* @brief 댓글 작성 시간 및 금지 ip/ 단어 처리 루틴
|
||||||
**/
|
**/
|
||||||
function triggerInsertComment(&$obj) {
|
function triggerInsertComment(&$obj) {
|
||||||
|
if($_SESSION['avoid_log']) return new Object();
|
||||||
|
|
||||||
// 로그인 여부, 로그인 정보, 권한 유무 체크
|
// 로그인 여부, 로그인 정보, 권한 유무 체크
|
||||||
$is_logged = Context::get('is_logged');
|
$is_logged = Context::get('is_logged');
|
||||||
$logged_info = Context::get('logged_info');
|
$logged_info = Context::get('logged_info');
|
||||||
|
|
@ -89,6 +100,8 @@
|
||||||
* @brief 엮인글 작성시 시간 및 ip 검사
|
* @brief 엮인글 작성시 시간 및 ip 검사
|
||||||
**/
|
**/
|
||||||
function triggerInsertTrackback(&$obj) {
|
function triggerInsertTrackback(&$obj) {
|
||||||
|
if($_SESSION['avoid_log']) return new Object();
|
||||||
|
|
||||||
$oFilterModel = &getModel('spamfilter');
|
$oFilterModel = &getModel('spamfilter');
|
||||||
|
|
||||||
// 해당 글에 엮인글을 한번 이상 추가하였는지를 확인
|
// 해당 글에 엮인글을 한번 이상 추가하였는지를 확인
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue