From 11bc4499667f91afbd15c96fa3c4d630fb7f2b39 Mon Sep 17 00:00:00 2001 From: Paul Wilde Date: Thu, 12 Aug 2021 15:35:20 +0100 Subject: [PATCH] replaced array_merge with array_replace_recursive --- src/core/init.php | 6 ++++-- src/core/init/responder.php | 12 +++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) 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];