/**
  * @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'));
     }
 }
Пример #2
0
 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;
     }
 }
Пример #3
0
 /**
  * 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'));
 }