회원에게 최고관리자 권한 부여후 다시 해제할때 적용 안되는 문제 해결 및 보안상 사용금지/최고관리 권한에 대해 권한 체크 루틴 추가

git-svn-id: http://xe-core.googlecode.com/svn/trunk@1893 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2007-07-10 07:13:23 +00:00
parent 03fbd6d257
commit e92ed5fa77
2 changed files with 27 additions and 4 deletions

View file

@ -23,6 +23,11 @@
// 설치가 되어 있는지에 대한 체크
if(Context::isInstalled()) return new Object(-1, 'msg_already_installed');
// 설치시 임시로 최고관리자로 지정
$logged_info->is_admin = 'Y';
$_SESSION['logged_info'] = $logged_info;
Context::set('logged_info', $logged_info);
// DB와 관련된 변수를 받음
$db_info = Context::gets('db_type','db_port','db_hostname','db_userid','db_password','db_database','db_table_prefix','time_zone','use_rewrite');
if($db_info->use_rewrite!='Y') $db_info->use_rewrite = 'N';

View file

@ -861,14 +861,23 @@
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
$logged_info = Context::get('logged_info');
// 임시 제한 일자가 있을 경우 제한 일자에 내용 추가
if($config->limit_day) $args->limit_date = date("YmdHis", time()+$config->limit_day*60*60*24);
// 필수 변수들의 조절
if($args->allow_mailing!='Y') $args->allow_mailing = 'N';
if(!in_array($args->allow_message, array('Y','N','F'))) $args->allow_message= 'Y';
if($args->denied!='Y') $args->denied = 'N';
if($args->is_admin!='Y') $args->is_admin = 'N';
if($logged_info->is_admin == 'Y') {
if($args->denied!='Y') $args->denied = 'N';
if($args->is_admin!='Y') $args->is_admin = 'N';
} else {
unset($args->is_admin);
unset($args->denied);
}
list($args->email_id, $args->email_host) = explode('@', $args->email_address);
// 홈페이지, 블로그의 주소 검사
@ -942,14 +951,23 @@
// 모델 객체 생성
$oMemberModel = &getModel('member');
$logged_info = Context::get('logged_info');
// 수정하려는 대상의 원래 정보 가져오기
$member_info = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl);
// 필수 변수들의 조절
if($args->allow_mailing!='Y') $args->allow_mailing = 'N';
if(!in_array($args->allow_message, array('Y','N','F'))) $args->allow_message = 'Y';
if(!$args->denied) unset($args->denied);
if(!$args->is_admin) unset($args->is_admin);
if($logged_info->is_admin == 'Y') {
if($args->denied!='Y') $args->denied = 'N';
if($args->is_admin!='Y') $args->is_admin = 'N';
} else {
unset($args->is_admin);
unset($args->denied);
}
list($args->email_id, $args->email_host) = explode('@', $args->email_address);
// 홈페이지, 블로그의 주소 검사