diff --git a/src/core/init.php b/src/core/init.php index a94124c..881d98c 100644 --- a/src/core/init.php +++ b/src/core/init.php @@ -34,7 +34,7 @@ class Init { // merge the default config with the custom config Core::$Config = array_merge($default_config,$config); Core::$Config["PrimaryDomain"] = Core::$Config["Domain"][0]; - + // parse the default services file for default values $default_services = parse_ini_file(Core::root_dir()."/default-config/services.default.ini", true); @@ -47,9 +47,11 @@ class Init { } // merge the default config with the custom config - Core::$Config["Services"] = array_merge($default_services,$services); + // using replace recursive as the config file contains arrays itself + Core::$Config["Services"] = array_replace_recursive($default_services,$services); // get the current git commit, if it exists. For testing Core::$Config["CommitID"] = Core::get_current_git_commit(); + } } diff --git a/src/core/init/responder.php b/src/core/init/responder.php index e3c394f..ead603c 100644 --- a/src/core/init/responder.php +++ b/src/core/init/responder.php @@ -54,6 +54,9 @@ class Responder { case "autodiscover/autodiscover.json": $resp = $this->ms_autodiscover_json(); break; + case "get/config": + $resp = $this->get_config(); + break; case "none": case "test": case "home": @@ -65,10 +68,17 @@ class Responder { } return $resp; } + private function get_config(){ + $response = new Response(); + $response->message = "Here's your config..."; + foreach (Core::$Config as $k => $v){ + $response->content[$k] = $v; + } + return $response; + } private function get_username($service,$email_address) { $username = "%EMAILADDRESS%"; if(!$service["UsernameIsFQDN"]) { - preg_match("/^[^@]+/",$email_address,$matches); if (count($matches) > 0){ $username = $matches[0];