/** * @brief Change settings */ function procInstallAdminSaveTimeZone() { $db_info = Context::getDBInfo(); $admin_ip_list = Context::get('admin_ip_list'); if ($admin_ip_list) { $admin_ip_list = preg_replace("/[\r|\n|\r\n]+/", ",", $admin_ip_list); $admin_ip_list = preg_replace("/\\s+/", "", $admin_ip_list); if (preg_match('/(<\\?|<\\?php|\\?>)/xsm', $admin_ip_list)) { $admin_ip_list = ''; } $admin_ip_list .= ',127.0.0.1,' . $_SERVER['REMOTE_ADDR']; $admin_ip_list = explode(',', trim($admin_ip_list, ',')); $admin_ip_list = array_unique($admin_ip_list); if (!IpFilter::validate($admin_ip_list)) { return new Object(-1, 'msg_invalid_ip'); } } $default_url = Context::get('default_url'); if ($default_url && strncasecmp('http://', $default_url, 7) !== 0 && strncasecmp('https://', $default_url, 8) !== 0) { $default_url = 'http://' . $default_url; } $use_ssl = Context::get('use_ssl'); if (!$use_ssl) { $use_ssl = 'none'; } $http_port = Context::get('http_port'); $https_port = Context::get('https_port'); $use_rewrite = Context::get('use_rewrite'); if ($use_rewrite != 'Y') { $use_rewrite = 'N'; } $use_sso = Context::get('use_sso'); if ($use_sso != 'Y') { $use_sso = 'N'; } $use_db_session = Context::get('use_db_session'); if ($use_db_session != 'Y') { $use_db_session = 'N'; } $qmail_compatibility = Context::get('qmail_compatibility'); if ($qmail_compatibility != 'Y') { $qmail_compatibility = 'N'; } $use_html5 = Context::get('use_html5'); if (!$use_html5) { $use_html5 = 'N'; } $db_info->default_url = $default_url; $db_info->qmail_compatibility = $qmail_compatibility; $db_info->use_db_session = $use_db_session; $db_info->use_rewrite = $use_rewrite; $db_info->use_sso = $use_sso; $db_info->use_ssl = $use_ssl; $db_info->use_html5 = $use_html5; $db_info->admin_ip_list = $admin_ip_list; if ($http_port) { $db_info->http_port = (int) $http_port; } else { if ($db_info->http_port) { unset($db_info->http_port); } } if ($https_port) { $db_info->https_port = (int) $https_port; } else { if ($db_info->https_port) { unset($db_info->https_port); } } unset($db_info->lang_type); $oInstallController = getController('install'); if (!$oInstallController->makeConfigFile()) { return new Object(-1, 'msg_invalid_request'); } else { Context::setDBInfo($db_info); if ($default_url) { $site_args = new stdClass(); $site_args->site_srl = 0; $site_args->domain = $default_url; $oModuleController = getController('module'); $oModuleController->updateSite($site_args); } $this->setRedirectUrl(Context::get('error_return_url')); } }
function procAdminUpdateSitelock() { $vars = Context::getRequestVars(); $oInstallController = getController('install'); $db_info = Context::getDbInfo(); $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; $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,' . $_SERVER['REMOTE_ADDR']; $whitelist = explode(',', trim($whitelist, ',')); $whitelist = array_unique($whitelist); 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'); if (!$returnUrl) { $returnUrl = getNotEncodedUrl('', 'act', 'dispAdminConfigGeneral'); } header('location:' . $returnUrl); return; } }
/** * Update sitelock configuration. */ function procAdminUpdateSitelock() { $vars = Context::gets('sitelock_locked', 'sitelock_allowed_ip', 'sitelock_title', 'sitelock_message'); $allowed_ip = array_map('trim', preg_split('/[\\r\\n]/', $vars->sitelock_allowed_ip)); $allowed_ip = array_unique(array_filter($allowed_ip, function ($item) { return $item !== ''; })); if ($vars->sitelock_locked === 'Y') { $allowed_localhost = false; $allowed_current = false; foreach ($allowed_ip as $range) { if (Rhymix\Framework\IpFilter::inRange('127.0.0.1', $range)) { $allowed_localhost = true; } if (Rhymix\Framework\IpFilter::inRange(RX_CLIENT_IP, $range)) { $allowed_current = true; } } if (!$allowed_localhost) { array_unshift($allowed_ip, '127.0.0.1'); } if (!$allowed_current) { array_unshift($allowed_ip, RX_CLIENT_IP); } } if (!IpFilter::validate($whitelist)) { return new Object(-1, 'msg_invalid_ip'); } Rhymix\Framework\Config::set('lock.locked', $vars->sitelock_locked === 'Y'); Rhymix\Framework\Config::set('lock.title', trim($vars->sitelock_title)); Rhymix\Framework\Config::set('lock.message', trim($vars->sitelock_message)); Rhymix\Framework\Config::set('lock.allow', array_values($allowed_ip)); Rhymix\Framework\Config::save(); $this->setMessage('success_updated'); $this->setRedirectUrl(Context::get('success_return_url') ?: getNotEncodedUrl('', 'act', 'dispAdminConfigSitelock')); }