mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 03:32:00 +09:00
Move admin IP whitelist to Security config page
This commit is contained in:
parent
a36bc03970
commit
6c671600c1
4 changed files with 30 additions and 28 deletions
|
|
@ -554,6 +554,7 @@ class adminAdminController extends admin
|
||||||
{
|
{
|
||||||
$vars = Context::getRequestVars();
|
$vars = Context::getRequestVars();
|
||||||
|
|
||||||
|
// iframe filter
|
||||||
$embed_iframe = $vars->embedfilter_iframe;
|
$embed_iframe = $vars->embedfilter_iframe;
|
||||||
$embed_iframe = array_filter(array_map('trim', preg_split('/[\r\n]/', $embed_iframe)), function($item) {
|
$embed_iframe = array_filter(array_map('trim', preg_split('/[\r\n]/', $embed_iframe)), function($item) {
|
||||||
return $item !== '';
|
return $item !== '';
|
||||||
|
|
@ -562,7 +563,9 @@ class adminAdminController extends admin
|
||||||
return preg_match('@^https?://(.*)$@i', $item, $matches) ? $matches[1] : $item;
|
return preg_match('@^https?://(.*)$@i', $item, $matches) ? $matches[1] : $item;
|
||||||
}, $embed_iframe));
|
}, $embed_iframe));
|
||||||
natcasesort($embed_iframe);
|
natcasesort($embed_iframe);
|
||||||
|
Rhymix\Framework\Config::set('embedfilter.iframe', array_values($embed_iframe));
|
||||||
|
|
||||||
|
// object filter
|
||||||
$embed_object = $vars->embedfilter_object;
|
$embed_object = $vars->embedfilter_object;
|
||||||
$embed_object = array_filter(array_map('trim', preg_split('/[\r\n]/', $embed_object)), function($item) {
|
$embed_object = array_filter(array_map('trim', preg_split('/[\r\n]/', $embed_object)), function($item) {
|
||||||
return $item !== '';
|
return $item !== '';
|
||||||
|
|
@ -571,9 +574,19 @@ class adminAdminController extends admin
|
||||||
return preg_match('@^https?://(.*)$@i', $item, $matches) ? $matches[1] : $item;
|
return preg_match('@^https?://(.*)$@i', $item, $matches) ? $matches[1] : $item;
|
||||||
}, $embed_object));
|
}, $embed_object));
|
||||||
natcasesort($embed_object);
|
natcasesort($embed_object);
|
||||||
|
|
||||||
Rhymix\Framework\Config::set('embedfilter.iframe', array_values($embed_iframe));
|
|
||||||
Rhymix\Framework\Config::set('embedfilter.object', array_values($embed_object));
|
Rhymix\Framework\Config::set('embedfilter.object', array_values($embed_object));
|
||||||
|
|
||||||
|
// Admin IP access control
|
||||||
|
$allowed_ip = array_map('trim', preg_split('/[\r\n]/', $vars->admin_allowed_ip));
|
||||||
|
$allowed_ip = array_unique(array_filter($allowed_ip, function($item) {
|
||||||
|
return $item !== '';
|
||||||
|
}));
|
||||||
|
if (!IpFilter::validate($whitelist)) {
|
||||||
|
return new Object(-1, 'msg_invalid_ip');
|
||||||
|
}
|
||||||
|
Rhymix\Framework\Config::set('admin.allow', array_values($allowed_ip));
|
||||||
|
|
||||||
|
// Save
|
||||||
Rhymix\Framework\Config::save();
|
Rhymix\Framework\Config::save();
|
||||||
|
|
||||||
$this->setMessage('success_updated');
|
$this->setMessage('success_updated');
|
||||||
|
|
@ -615,15 +628,7 @@ class adminAdminController extends admin
|
||||||
Rhymix\Framework\Config::set('view.minify_scripts', $vars->minify_scripts ?: 'common');
|
Rhymix\Framework\Config::set('view.minify_scripts', $vars->minify_scripts ?: 'common');
|
||||||
Rhymix\Framework\Config::set('view.gzip', $vars->use_gzip === 'Y');
|
Rhymix\Framework\Config::set('view.gzip', $vars->use_gzip === 'Y');
|
||||||
|
|
||||||
// Admin IP access control
|
// Save
|
||||||
$allowed_ip = array_map('trim', preg_split('/[\r\n]/', $vars->admin_allowed_ip));
|
|
||||||
$allowed_ip = array_unique(array_filter($allowed_ip, function($item) {
|
|
||||||
return $item !== '';
|
|
||||||
}));
|
|
||||||
if (!IpFilter::validate($whitelist)) {
|
|
||||||
return new Object(-1, 'msg_invalid_ip');
|
|
||||||
}
|
|
||||||
Rhymix\Framework\Config::set('admin.allow', array_values($allowed_ip));
|
|
||||||
Rhymix\Framework\Config::save();
|
Rhymix\Framework\Config::save();
|
||||||
|
|
||||||
$this->setMessage('success_updated');
|
$this->setMessage('success_updated');
|
||||||
|
|
|
||||||
|
|
@ -433,6 +433,13 @@ class adminAdminView extends admin
|
||||||
context::set('embedfilter_iframe', implode(PHP_EOL, $oEmbedFilter->whiteIframeUrlList));
|
context::set('embedfilter_iframe', implode(PHP_EOL, $oEmbedFilter->whiteIframeUrlList));
|
||||||
context::set('embedfilter_object', implode(PHP_EOL, $oEmbedFilter->whiteUrlList));
|
context::set('embedfilter_object', implode(PHP_EOL, $oEmbedFilter->whiteUrlList));
|
||||||
|
|
||||||
|
// Admin IP access control
|
||||||
|
$allowed_ip = Rhymix\Framework\Config::get('admin.allow');
|
||||||
|
Context::set('admin_allowed_ip', implode(PHP_EOL, $allowed_ip));
|
||||||
|
$denied_ip = Rhymix\Framework\Config::get('admin.deny');
|
||||||
|
Context::set('admin_denied_ip', implode(PHP_EOL, $denied_ip));
|
||||||
|
Context::set('remote_addr', RX_CLIENT_IP);
|
||||||
|
|
||||||
$this->setTemplateFile('config_security');
|
$this->setTemplateFile('config_security');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -464,13 +471,6 @@ class adminAdminView extends admin
|
||||||
Context::set('minify_scripts', Rhymix\Framework\Config::get('view.minify_scripts'));
|
Context::set('minify_scripts', Rhymix\Framework\Config::get('view.minify_scripts'));
|
||||||
Context::set('use_gzip', Rhymix\Framework\Config::get('view.gzip'));
|
Context::set('use_gzip', Rhymix\Framework\Config::get('view.gzip'));
|
||||||
|
|
||||||
// Admin IP access control
|
|
||||||
$allowed_ip = Rhymix\Framework\Config::get('admin.allow');
|
|
||||||
Context::set('admin_allowed_ip', implode(PHP_EOL, $allowed_ip));
|
|
||||||
$denied_ip = Rhymix\Framework\Config::get('admin.deny');
|
|
||||||
Context::set('admin_denied_ip', implode(PHP_EOL, $denied_ip));
|
|
||||||
Context::set('remote_addr', RX_CLIENT_IP);
|
|
||||||
|
|
||||||
$this->setTemplateFile('config_advanced');
|
$this->setTemplateFile('config_advanced');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -75,13 +75,6 @@
|
||||||
<label for="use_gzip_n" class="x_inline"><input type="radio" name="use_gzip" id="use_gzip_n" value="N" checked="checked"|cond="!$use_gzip" /> {$lang->cmd_no}</label>
|
<label for="use_gzip_n" class="x_inline"><input type="radio" name="use_gzip" id="use_gzip_n" value="N" checked="checked"|cond="!$use_gzip" /> {$lang->cmd_no}</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="x_control-group">
|
|
||||||
<label class="x_control-label" for="admin_allowed_ip">{$lang->admin_ip_limit} <a class="x_icon-question-sign" href="./common/manual/admin/#UMAN_config_general_admin_iplist" target="_blank">{$lang->help}</a></label>
|
|
||||||
<div class="x_controls">
|
|
||||||
<textarea name="admin_allowed_ip" id="admin_allowed_ip" rows="4" cols="42" placeholder="{$remote_addr} ({$lang->local_ip_address})" style="margin-right:10px">{$admin_allowed_ip}</textarea>
|
|
||||||
<p class="x_help-block">{$lang->about_ipaddress_input}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="x_clearfix btnArea">
|
<div class="x_clearfix btnArea">
|
||||||
<div class="x_pull-right">
|
<div class="x_pull-right">
|
||||||
<button type="submit" class="x_btn x_btn-primary">{$lang->cmd_save}</button>
|
<button type="submit" class="x_btn x_btn-primary">{$lang->cmd_save}</button>
|
||||||
|
|
|
||||||
|
|
@ -7,21 +7,25 @@
|
||||||
<input type="hidden" name="module" value="admin" />
|
<input type="hidden" name="module" value="admin" />
|
||||||
<input type="hidden" name="act" value="procAdminUpdateSecurity" />
|
<input type="hidden" name="act" value="procAdminUpdateSecurity" />
|
||||||
<input type="hidden" name="xe_validator_id" value="modules/admin/tpl/config_security/1" />
|
<input type="hidden" name="xe_validator_id" value="modules/admin/tpl/config_security/1" />
|
||||||
|
|
||||||
<div class="x_control-group">
|
<div class="x_control-group">
|
||||||
<label class="x_control-label" for="embedfilter_iframe">iframe</label>
|
<label class="x_control-label" for="embedfilter_iframe">iframe</label>
|
||||||
<div class="x_controls" style="margin-right:14px">
|
<div class="x_controls" style="margin-right:14px">
|
||||||
<textarea name="embedfilter_iframe" id="embedfilter_iframe" rows="8" style="width:100%;">{$embedfilter_iframe}</textarea>
|
<textarea name="embedfilter_iframe" id="embedfilter_iframe" rows="8" style="width:100%;">{$embedfilter_iframe}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="x_control-group">
|
<div class="x_control-group">
|
||||||
<label class="x_control-label" for="embedfilter_object">object/embed</label>
|
<label class="x_control-label" for="embedfilter_object">object/embed</label>
|
||||||
<div class="x_controls" style="margin-right:14px">
|
<div class="x_controls" style="margin-right:14px">
|
||||||
<textarea name="embedfilter_object" id="embedfilter_object" rows="8" style="width:100%;">{$embedfilter_object}</textarea>
|
<textarea name="embedfilter_object" id="embedfilter_object" rows="8" style="width:100%;">{$embedfilter_object}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="x_control-group">
|
||||||
|
<label class="x_control-label" for="admin_allowed_ip">{$lang->admin_ip_limit} <a class="x_icon-question-sign" href="./common/manual/admin/#UMAN_config_general_admin_iplist" target="_blank">{$lang->help}</a></label>
|
||||||
|
<div class="x_controls">
|
||||||
|
<textarea name="admin_allowed_ip" id="admin_allowed_ip" rows="4" cols="42" placeholder="{$remote_addr} ({$lang->local_ip_address})" style="margin-right:10px">{$admin_allowed_ip}</textarea>
|
||||||
|
<p class="x_help-block">{$lang->about_ipaddress_input}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="x_clearfix btnArea">
|
<div class="x_clearfix btnArea">
|
||||||
<div class="x_pull-right">
|
<div class="x_pull-right">
|
||||||
<button type="submit" class="x_btn x_btn-primary">{$lang->cmd_save}</button>
|
<button type="submit" class="x_btn x_btn-primary">{$lang->cmd_save}</button>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue