queryFirstRow('SELECT `GRADE` FROM `MEMBER` WHERE `NO` = %i', $SESSION->NoMember()); function doServerModeSet($server, $action, &$response){ $serverList = getServerConfigList(); $settingObj = $serverList[$server][2]; $serverDir = $settingObj->getShortName(); $serverPath = $settingObj->getBasePath(); $realServerPath = realpath(dirname(__FILE__)).W.$serverPath; if($action == 'close') { //폐쇄 $templates = new League\Plates\Engine('templates'); //TODO: .htaccess가 서버 오픈에도 사용될 수 있으니 별도의 방법이 필요함 $allow_ip = util::get_client_ip(false); if(util::starts_with($allow_ip, '192.168.') || util::starts_with($allow_ip, '10.')) { //172.16~172.31은 코딩하기 귀찮으니까 안할거다 $allow_ip = util::get_client_ip(true); } $xforward_allow_ip = escapeIPv4($allow_ip); $htaccess = $templates->render('block_htaccess', ['allow_ip' => $allow_ip, 'xforward_allow_ip' => $xforward_allow_ip]); file_put_contents($serverPath.'/.htaccess', $htaccess); } elseif($action == 'reset') {//리셋 if(file_exists($serverPath.'/d_setting/conf.php')){ @unlink($serverPath.'/d_setting/conf.php'); } $response['installURL'] = $serverDir.W."install.php"; } elseif($action == 'open') {//오픈 if(file_exists($serverPath.'/.htaccess')){ @unlink($serverPath.'/.htaccess'); } } return true; } function doAdminPost($member, $action, $notice, $server){ $response['result'] = 'FAIL'; if($member['GRADE'] < 6) { $response['result'] = 'FAIL'; $response['msg'] = '운영자 권한이 없습니다.'; return $response; } if($action == 'notice') { getRootDB()->update('SYSTEM', ['NOTICE'=>$notice], 'NO=1'); $response['result'] = 'SUCCESS'; return $response; } if(doServerModeSet($server, $action, $response)){ $response['result'] = 'SUCCESS'; return $response; } return $response; } $response = doAdminPost($member, $action, $notice, $server); echo json_encode($response);