diff --git a/core/authentication/resources/classes/authentication.php b/core/authentication/resources/classes/authentication.php index 1640283423..a93ae661f3 100644 --- a/core/authentication/resources/classes/authentication.php +++ b/core/authentication/resources/classes/authentication.php @@ -1,7 +1,7 @@ domain_name = $_SERVER["HTTP_HOST"]; + $domain_name = $_SERVER["HTTP_HOST"]; + + //get the domain name from the http value + if (!empty($_REQUEST["domain_name"])) { + $domain_name = $_REQUEST["domain_name"]; + } + + //remote port number from the domain name + $domain_array = explode(":", $domain_name); + if (count($domain_array) > 1) { + $domain_name = $domain_array[0]; + } + + //if the username + if (!empty($_REQUEST["username"])) { + $_SESSION['username'] = $_REQUEST["username"]; + } + + //set a default value for unqiue + if (empty($_SESSION["users"]["unique"]["text"])) { + $_SESSION["users"]["unique"]["text"] = 'false'; + } //get the domain name from the username - if (isset($_SESSION["users"]["unique"]) && $_SESSION["users"]["unique"]["text"] != "global") { - $username_array = explode("@", $_REQUEST["username"] ?? ''); + if (!empty($_SESSION['username']) && $_SESSION["users"]["unique"]["text"] != "global") { + $username_array = explode("@", $_SESSION['username']); if (count($username_array) > 1) { //get the domain name $domain_name = $username_array[count($username_array) -1]; @@ -425,7 +446,7 @@ class authentication { $domain_exists = false; foreach ($_SESSION['domains'] as $row) { if (lower_case($row['domain_name']) == lower_case($domain_name)) { - $this->domain_uuid = $row['domain_uuid']; + $domain_uuid = $row['domain_uuid']; $domain_exists = true; break; } @@ -433,10 +454,10 @@ class authentication { //if the domain exists then set domain_name and update the username if ($domain_exists) { - $this->domain_name = $domain_name; - $this->username = substr($_REQUEST["username"], 0, -(strlen($domain_name)+1)); - $_SESSION['username'] = $this->username; - $_SESSION['domain_uuid'] = $this->domain_uuid; + $username = substr($_SESSION['username'], 0, -(strlen($domain_name)+1)); + $_SESSION['domain_name'] = $domain_name; + $_SESSION['username'] = $username; + $_SESSION['domain_uuid'] = $domain_uuid; } //unset the domain name variable @@ -444,22 +465,11 @@ class authentication { } } - //get the domain name from the http value - if (!empty($_REQUEST["domain_name"] ?? '')) { - $this->domain_name = $_REQUEST["domain_name"]; - } - - //remote port number from the domain name - $domain_array = explode(":", $this->domain_name); - if (count($domain_array) > 1) { - $this->domain_name = $domain_array[0]; - } - //get the domain uuid and domain settings - if (isset($this->domain_name) && !isset($this->domain_uuid)) { + if (isset($domain_name) && !isset($domain_uuid)) { foreach ($_SESSION['domains'] as $row) { - if (lower_case($row['domain_name']) == lower_case($this->domain_name)) { - $this->domain_uuid = $row['domain_uuid']; + if (lower_case($row['domain_name']) == lower_case($domain_name)) { + $domain_uuid = $row['domain_uuid']; $_SESSION['domain_uuid'] = $row['domain_uuid']; break; } @@ -471,11 +481,11 @@ class authentication { $obj->set(); //set the domain settings - $_SESSION['domain_name'] = $this->domain_name; + $_SESSION['domain_name'] = $domain_name; $_SESSION['domain_parent_uuid'] = $_SESSION["domain_uuid"]; //set the domain name - return $this->domain_name; + return $domain_name; } } diff --git a/core/authentication/resources/classes/plugins/database.php b/core/authentication/resources/classes/plugins/database.php index 52c516ca12..2e4b55fd3a 100644 --- a/core/authentication/resources/classes/plugins/database.php +++ b/core/authentication/resources/classes/plugins/database.php @@ -3,8 +3,7 @@ /** * plugin_database * - * @method validate uses authentication plugins to check if a user is authorized to login - * @method get_domain used to get the domain name from the URL or username and then sets both domain_name and domain_uuid + * @method plugin_database validates the authentication using information from the database */ class plugin_database { @@ -138,6 +137,13 @@ class plugin_database { $this->key = $_REQUEST["key"]; } + //get the domain name + $auth = new authentication; + $auth->get_domain(); + $this->domain_uuid = $_SESSION['domain_uuid']; + $this->domain_name = $_SESSION['domain_name']; + $this->username = $_SESSION['username']; + //set the default status $user_authorized = false;