New security config tab

This commit is contained in:
danpros 2024-06-03 08:46:15 +07:00
commit ce60dfdae1
36 changed files with 221 additions and 67 deletions

View file

@ -2074,6 +2074,77 @@ post('/admin/config/metatags', function () {
}
});
// Show Config page
get('/admin/config/security', function () {
$user = $_SESSION[site_url()]['user'];
$role = user('role', $user);
if (login()) {
config('views.root', 'system/admin/views');
if ($role === 'admin') {
render('config-security', array(
'title' => generate_title('is_default', i18n('Config')),
'description' => safe_html(strip_tags(blog_description())),
'canonical' => site_url(),
'metatags' => generate_meta(null, null),
'type' => 'is_admin-config',
'is_admin' => true,
'bodyclass' => 'admin-config',
'breadcrumb' => '<a href="' . site_url() . '">' . config('breadcrumb.home') . '</a> &#187; ' . i18n('Config')
));
} else {
render('denied', array(
'title' => generate_title('is_default', i18n('Config')),
'description' => safe_html(strip_tags(blog_description())),
'canonical' => site_url(),
'metatags' => generate_meta(null, null),
'type' => 'is_admin-config',
'is_admin' => true,
'bodyclass' => 'denied',
'breadcrumb' => '<a href="' . site_url() . '">' . config('breadcrumb.home') . '</a> &#187; ' . i18n('Config')
));
}
} else {
$login = site_url() . 'login';
header("location: $login");
}
});
// Submitted Config page data
post('/admin/config/security', function () {
$proper = is_csrf_proper(from($_REQUEST, 'csrf_token'));
if (login() && $proper) {
$new_config = array();
$new_Keys = array();
$user = $_SESSION[site_url()]['user'];
$role = user('role', $user);
if ($role === 'admin') {
foreach ($_POST as $name => $value) {
if (substr($name, 0, 8) == "-config-") {
$name = str_replace("_", ".", substr($name, 8));
if(!is_null(config($name))) {
$new_config[$name] = $value;
} else {
$new_Keys[$name] = $value;
}
}
}
save_config($new_config, $new_Keys);
$redir = site_url() . 'admin/config/security';
header("location: $redir");
} else {
$redir = site_url();
header("location: $redir");
}
} else {
$login = site_url() . 'login';
header("location: $login");
}
});
// Show Config page
get('/admin/config/performance', function () {