diff --git a/core/authentication/resources/classes/plugins/database.php b/core/authentication/resources/classes/plugins/database.php
index 6f9805c679..99ff25c852 100644
--- a/core/authentication/resources/classes/plugins/database.php
+++ b/core/authentication/resources/classes/plugins/database.php
@@ -153,8 +153,8 @@ class plugin_database {
//get the domain name
$auth = new authentication;
$auth->get_domain();
- $this->domain_uuid = $_SESSION['domain_uuid'];
- $this->domain_name = $_SESSION['domain_name'];
+ $this->domain_uuid = $_SESSION['domain_uuid'] ?? null;
+ $this->domain_name = $_SESSION['domain_name'] ?? null;
$this->username = $_SESSION['username'] ?? null;
//debug information
@@ -195,42 +195,6 @@ class plugin_database {
$row = $database->select($sql, $parameters, 'row');
if (!empty($row) && is_array($row) && @sizeof($row) != 0) {
- //set the domain details
- $this->domain_uuid = $_SESSION['domain_uuid'];
- $this->domain_name = $_SESSION['domain_name'];
-
- //get the domain uuid when users are unique globally
- if ($settings['users']['unique'] === "global" && $row["domain_uuid"] !== $this->domain_uuid) {
- //set the domain_uuid
- $this->domain_uuid = $row["domain_uuid"];
- $this->domain_name = $row["domain_name"];
-
- //set the domain session variables
- $_SESSION["domain_uuid"] = $this->domain_uuid;
- $_SESSION["domain_name"] = $this->domain_name;
-
- //set the setting arrays
- $domain = new domains();
- $domain->set();
- }
-
- //set the variables
- $this->user_uuid = $row['user_uuid'];
- $this->username = $row['username'];
- $this->user_email = $row['user_email'];
- $this->contact_uuid = $row['contact_uuid'];
-
- //debug info
- //echo "user_uuid ".$this->user_uuid."
\n";
- //echo "username ".$this->username."
\n";
- //echo "contact_uuid ".$this->contact_uuid."
\n";
-
- //set a few session variables
- $_SESSION["user_uuid"] = $row['user_uuid'];
- $_SESSION["username"] = $row['username'];
- $_SESSION["user_email"] = $row['user_email'];
- $_SESSION["contact_uuid"] = $row["contact_uuid"];
-
//validate the password
$valid_password = false;
if (isset($this->key) && strlen($this->key) > 30 && $this->key === $row["api_key"]) {
@@ -251,6 +215,40 @@ class plugin_database {
}
}
+ //set the domain and user settings
+ if ($valid_password) {
+ //set the domain_uuid
+ $this->domain_uuid = $row["domain_uuid"];
+ $this->domain_name = $row["domain_name"];
+
+ //set the domain session variables
+ $_SESSION["domain_uuid"] = $this->domain_uuid;
+ $_SESSION["domain_name"] = $this->domain_name;
+
+ //set the domain setting
+ if ($settings['users']['unique'] === "global" && $row["domain_uuid"] !== $this->domain_uuid) {
+ $domain = new domains();
+ $domain->set();
+ }
+
+ //set the variables
+ $this->user_uuid = $row['user_uuid'];
+ $this->username = $row['username'];
+ $this->user_email = $row['user_email'];
+ $this->contact_uuid = $row['contact_uuid'];
+
+ //debug info
+ //echo "user_uuid ".$this->user_uuid."
\n";
+ //echo "username ".$this->username."
\n";
+ //echo "contact_uuid ".$this->contact_uuid."
\n";
+
+ //set a few session variables
+ $_SESSION["user_uuid"] = $row['user_uuid'];
+ $_SESSION["username"] = $row['username'];
+ $_SESSION["user_email"] = $row['user_email'];
+ $_SESSION["contact_uuid"] = $row["contact_uuid"];
+ }
+
//check to to see if the the password hash needs to be updated
if ($valid_password) {
//set the password hash cost