Merge branch 'feature/ipfilter' into develop

This commit is contained in:
khongchi 2013-12-05 10:40:11 +09:00
commit 8a7e5a8794
11 changed files with 165 additions and 53 deletions

View file

@ -490,11 +490,31 @@ class adminAdminController extends admin
$db_info->use_sitelock = ($vars->use_sitelock) ? $vars->use_sitelock : 'N';
$db_info->sitelock_title = $vars->sitelock_title;
$db_info->sitelock_message = $vars->sitelock_message;
$db_info->sitelock_whitelist = $vars->sitelock_whitelist;
if(!$db_info->sitelock_whitelist) $db_info->sitelock_whitelist = '127.0.0.1';
$whitelist = $vars->sitelock_whitelist;
$whitelist = preg_replace("/[\r|\n|\r\n]+/",",",$whitelist);
$whitelist = preg_replace("/\s+/","",$whitelist);
if(preg_match('/(<\?|<\?php|\?>)/xsm', $whitelist))
{
$whitelist = '';
}
$whitelist .= ',127.0.0.1';
$whitelist = explode(',',trim($whitelist, ','));
$whitelist = array_unique($whitelist);
FileHandler::writeFile(Context::getConfigFile(), $oInstallController->_getDBConfigFileContents($db_info));
if(!IpFilter::validate($whitelist)) {
return new Object(-1, 'msg_invalid_ip');
}
$db_info->sitelock_whitelist = $whitelist;
$oInstallController = &getController('install');
if(!$oInstallController->makeConfigFile())
{
return new Object(-1, 'msg_invalid_request');
}
if(!in_array(Context::getRequestMethod(), array('XMLRPC','JSON')))
{
$returnUrl = Context::get('success_return_url');
@ -502,6 +522,12 @@ class adminAdminController extends admin
header('location:' . $returnUrl);
return;
}
}
}

View file

@ -419,13 +419,15 @@ class adminAdminView extends admin
Context::set('use_sitelock', $db_info->use_sitelock);
Context::set('sitelock_title', $db_info->sitelock_title);
Context::set('sitelock_message', htmlspecialchars($db_info->sitelock_message, ENT_COMPAT | ENT_HTML401, 'UTF-8', false));
Context::set('sitelock_whitelist', implode(PHP_EOL, $db_info->sitelock_whitelist));
$whitelist = implode("\r\n", $db_info->sitelock_whitelist);
Context::set('sitelock_whitelist', $whitelist);
$admin_ip_list = implode("\r\n", $db_info->admin_ip_list);
Context::set('admin_ip_list', $admin_ip_list);
Context::set('lang_selected', Context::loadLangSelected());
$admin_ip_list = preg_replace("/[,]+/", "\r\n", $db_info->admin_ip_list);
Context::set('admin_ip_list', $admin_ip_list);
$oAdminModel = getAdminModel('admin');
$favicon_url = $oAdminModel->getFaviconUrl();
$mobicon_url = $oAdminModel->getMobileIconUrl();

View file

@ -140,7 +140,8 @@
<div class="x_control-group">
<label class="x_control-label" for="admin_ip_list">{$lang->admin_ip_limit} <a class="x_icon-question-sign" href="./admin/help/index.html#UMAN_config_general_admin_iplist" target="_blank">{$lang->help}</a></label>
<div class="x_controls">
<textarea name="admin_ip_list" id="admin_ip_list" rows="4" cols="42" placeholder="{$IP}({$lang->local_ip_address})" style="float:left;margin-right:10px">{$admin_ip_list}</textarea>
<textarea name="admin_ip_list" id="admin_ip_list" rows="4" cols="42" placeholder="{$IP}({$lang->local_ip_address})" style="margin-right:10px">{$admin_ip_list}</textarea>
<p class="x_help-block">{$lang->about_ipaddress_input}</p>
</div>
</div>
<div class="x_control-group">
@ -222,6 +223,8 @@
<textarea name="sitelock_whitelist" id="sitelock_whitelist" rows="4" cols="42" placeholder="{$IP}({$lang->local_ip_address})" style="margin-right:10px">{$sitelock_whitelist}</textarea>
<span class="x_help-block">{$lang->sitelock_warning_whitelist}</span>
<span class="x_help-block">{$lang->your_ip} : {$remote_addr}</span>
<br />
<p class="x_help-block">{$lang->about_ipaddress_input}</p>
</div>
</div>
<div class="x_control-group">