Attempt to make auto set up of NAME SERVER work with configure_tool.php, a=chris

Chris Pollett [2013-03-01 17:Mar:st]
Attempt to make auto set up of NAME SERVER work with configure_tool.php, a=chris
Filename
configs/config.php
controllers/admin_controller.php
index.php
diff --git a/configs/config.php b/configs/config.php
index 150852d38..c060656c4 100644
--- a/configs/config.php
+++ b/configs/config.php
@@ -115,6 +115,9 @@ if(file_exists(WORK_DIRECTORY.PROFILE_FILE_NAME)) {
     if(defined('QUEUE_SERVER') && !defined('NAME_SERVER')) {
         define('NAME_SERVER', QUEUE_SERVER); //for backward compatibility
     }
+    if(NAME_SERVER == 'http://' || NAME_SERVER == 'https://') {
+        define("FIX_NAME_SERVER", true);
+    }
 } else {
     if((!isset( $_SERVER['SERVER_NAME'])||$_SERVER['SERVER_NAME']!=='localhost')
         && !defined("NO_LOCAL_CHECK") && php_sapi_name() != 'cli' ) {
diff --git a/controllers/admin_controller.php b/controllers/admin_controller.php
index ffa03d474..98edd17d9 100755
--- a/controllers/admin_controller.php
+++ b/controllers/admin_controller.php
@@ -200,7 +200,7 @@ class AdminController extends Controller implements CrawlConstants
      */
     function processSession()
     {
-        if(!PROFILE) {
+        if(!PROFILE || (defined("FIX_NAME_SERVER") && FIX_NAME_SERVER)) {
             $activity = "configure";
         } else if(isset($_REQUEST['a']) &&
             in_array($_REQUEST['a'], $this->activities)) {
@@ -2580,7 +2580,18 @@ class AdminController extends Controller implements CrawlConstants

         $data['PROFILE'] = false;
         $data['MESSAGE'] = "";
-        if(isset($_REQUEST['WORK_DIRECTORY'])) {
+        if((defined('WORK_DIRECTORY') &&
+            defined('FIX_NAME_SERVER') && FIX_NAME_SERVER) &&
+            !isset($_REQUEST['WORK_DIRECTORY'])) {
+            $_REQUEST['arg'] = "profile";
+            $uri = UrlParser::getPath($_SERVER['REQUEST_URI']);
+            $http = (isset($_SERVER['HTTPS'])) ? "https://" :
+                "http://";
+            $_REQUEST['NAME_SERVER'] =
+                $http . $_SERVER['SERVER_NAME'] . $uri;
+            $data['NAME_SERVER'] = $_REQUEST['NAME_SERVER'];
+        }
+        if(isset($_REQUEST['WORK_DIRECTORY']) ) {
             $dir =
                 $this->clean($_REQUEST['WORK_DIRECTORY'], "string");
             $data['PROFILE'] = true;
@@ -2780,7 +2791,7 @@ class AdminController extends Controller implements CrawlConstants
                 }

                 if($this->profileModel->updateProfile(
-                $data['WORK_DIRECTORY'], $profile, $old_profile)) {
+                    $data['WORK_DIRECTORY'], $profile, $old_profile)) {
                     $data['MESSAGE'] =
                         tl('admin_controller_configure_profile_change');
                     $data['SCRIPT'] =
diff --git a/index.php b/index.php
index 45445efc7..269fc785d 100755
--- a/index.php
+++ b/index.php
@@ -148,7 +148,7 @@ if(!checkAllowedController($controller_name))
 }

 // if no profile exists we force the page to be the configuration page
-if(!PROFILE ) {
+if(!PROFILE || (defined("FIX_NAME_SERVER") && FIX_NAME_SERVER)) {
     $controller_name = "admin";
 }
ViewGit