From 163403acc7d351b239802c9129a48d9c95a2f85e Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Mon, 5 Aug 2024 15:07:13 -0600 Subject: [PATCH] Re-use the database object --- app/provision/resources/classes/provision.php | 77 +++++++------------ 1 file changed, 29 insertions(+), 48 deletions(-) diff --git a/app/provision/resources/classes/provision.php b/app/provision/resources/classes/provision.php index 28cd4bb4b7..4aeb0ff852 100644 --- a/app/provision/resources/classes/provision.php +++ b/app/provision/resources/classes/provision.php @@ -39,13 +39,12 @@ public function __construct($params = []) { //preset the the values - $database = null; $settings = null; $domain_uuid = null; //use the parameters to set the values if they exist if (isset($params['database'])) { - $database = $params['database']; + $this->database = $params['database']; } if (isset($params['settings'])) { $settings = $params['settings']; @@ -55,20 +54,19 @@ } //check if we can use the settings object to get the database object - if (!empty($settings) && empty($database)) { - $database = $settings->database(); + if (!empty($settings) && empty($this->database)) { + $this->database = $settings->database(); } //fill in missing - if (empty($database)) { - $database = database::new(); + if (empty($this->database)) { + $this->database = database::new(); } if (empty($settings)) { - $settings = new settings(['database' => $database, 'domain_uuid' => $domain_uuid]); + $settings = new settings(['database' => $this->database, 'domain_uuid' => $domain_uuid]); } //assign to the object - $this->database = $database; $this->settings = $settings; $this->domain_uuid = $domain_uuid; @@ -142,8 +140,7 @@ $sql .= "where device_address = :device_address "; $sql .= "and device_address <> '000000000000' "; $parameters['device_address'] = $device_address; - $database = new database; - $num_rows = $database->select($sql, $parameters, 'column'); + $num_rows = $this->database->select($sql, $parameters, 'column'); if ($num_rows > 0) { return true; } @@ -236,8 +233,7 @@ $parameters['device_user_uuid'] = $device_user_uuid; } $parameters['domain_uuid'] = $domain_uuid; - $database = new database; - $database_contacts = $database->select($sql, $parameters, 'all'); + $database_contacts = $this->database->select($sql, $parameters, 'all'); if (is_array($database_contacts)) { $x = 0; foreach ($database_contacts as &$row) { @@ -312,8 +308,7 @@ $sql = "select domain_name from v_domains "; $sql .= "where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $domain_uuid; - $database = new database; - $domain_name = $database->select($sql, $parameters, 'column'); + $domain_name = $this->database->select($sql, $parameters, 'column'); unset($sql, $parameters); } @@ -341,8 +336,7 @@ $parameters['domain_uuid'] = $domain_uuid; } $parameters['device_address'] = $device_address; - $database = new database; - $row = $database->select($sql, $parameters, 'row'); + $row = $this->database->select($sql, $parameters, 'row'); unset($sql, $parameters); if (is_array($row) && sizeof($row) != 0) { @@ -370,8 +364,7 @@ $parameters['device_provisioned_method'] = (isset($_SERVER["HTTPS"]) ? 'https' : 'http'); $parameters['device_provisioned_ip'] = $_SERVER['REMOTE_ADDR']; $parameters['device_provisioned_agent'] = $_SERVER['HTTP_USER_AGENT']; - $database = new database; - $database->execute($sql, $parameters); + $this->database->execute($sql, $parameters); unset($sql, $parameters); //set the variables from values in the database @@ -398,8 +391,7 @@ $sql .= "and device_enabled = 'true' "; $sql .= "limit 1 "; $parameters['domain_uuid'] = $domain_uuid; - $database = new database; - $row = $database->select($sql, $parameters, 'row'); + $row = $this->database->select($sql, $parameters, 'row'); if (!empty($row) && is_array($row) && sizeof($row) != 0) { $device_label = $row["device_label"]; $device_template = $row["device_template"]; @@ -566,14 +558,13 @@ $p->add("device_edit", "temp"); //save to the data - $database = new database; - $database->app_name = 'devices'; - $database->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e'; + $this->database->app_name = 'devices'; + $this->database->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e'; if (!empty($device_uuid)) { - $database->uuid($device_uuid); + $this->database->uuid($device_uuid); } - $database->save($array); - $message = $database->message; + $this->database->save($array); + $message = $this->database->message; //remove the temporary permission $p->delete("device_add", "temp"); @@ -592,8 +583,7 @@ $parameters['domain_uuid'] = $domain_uuid; } $parameters['device_uuid'] = $device_uuid; - $database = new database; - $row = $database->select($sql, $parameters, 'row'); + $row = $this->database->select($sql, $parameters, 'row'); if (is_array($row) && sizeof($row) != 0) { $device_uuid_alternate = $row["device_uuid_alternate"]; unset($sql, $row, $parameters); @@ -608,8 +598,7 @@ $parameters['domain_uuid'] = $domain_uuid; } $parameters['device_uuid'] = $device_uuid; - $database = new database; - $row = $database->select($sql, $parameters, 'row'); + $row = $this->database->select($sql, $parameters, 'row'); if (is_array($row) && sizeof($row) != 0) { if ($row["device_enabled"] == "true") { $device_label = $row["device_label"]; @@ -634,8 +623,7 @@ $sql .= "where device_profile_uuid = :device_profile_uuid "; $sql .= "and profile_setting_enabled = 'true' "; $parameters['device_profile_uuid'] = $device_profile_uuid; - $database = new database; - $device_profile_settings = $database->select($sql, $parameters, 'all'); + $device_profile_settings = $this->database->select($sql, $parameters, 'all'); if (is_array($device_profile_settings) && sizeof($device_profile_settings) != 0) { foreach($device_profile_settings as $row) { $key = $row['profile_setting_name']; @@ -652,8 +640,7 @@ $sql .= "where device_uuid = :device_uuid "; $sql .= "and device_setting_enabled = 'true' "; $parameters['device_uuid'] = $device_uuid; - $database = new database; - $device_settings = $database->select($sql, $parameters, 'all'); + $device_settings = $this->database->select($sql, $parameters, 'all'); if (is_array($device_settings) && sizeof($device_settings) != 0) { foreach($device_settings as $row) { $key = $row['device_setting_subcategory']; @@ -693,9 +680,8 @@ $sql .= "where device_uuid = :device_uuid "; $sql .= "and (enabled = 'true' or enabled is null or enabled = '') "; $parameters['device_uuid'] = $device_uuid; - $database = new database; - //$database_device_lines = $database->select($sql, $parameters, 'all'); - foreach ($database->select($sql, $parameters, 'all') as $row) { + //$database_device_lines = $this->database->select($sql, $parameters, 'all'); + foreach ($this->database->select($sql, $parameters, 'all') as $row) { $id = $row['line_number']; $device_lines[$id] = $row; } @@ -739,8 +725,7 @@ $sql .= "cast(profile_key_id as numeric) asc "; } $parameters['device_profile_uuid'] = $device_profile_uuid; - $database = new database; - $keys = $database->select($sql, $parameters, 'all'); + $keys = $this->database->select($sql, $parameters, 'all'); //add the profile keys to the device keys array if (is_array($keys) && sizeof($keys) != 0) { @@ -793,8 +778,7 @@ $sql .= "cast(device_key_id as numeric) asc "; } $parameters['device_uuid'] = $device_uuid; - $database = new database; - $keys = $database->select($sql, $parameters, 'all'); + $keys = $this->database->select($sql, $parameters, 'all'); //override profile keys with the device keys if (is_array($keys)) { @@ -932,8 +916,7 @@ $sql .= "and directory_visible = 'true' "; $sql .= "order by number_alias, extension asc "; $parameters['domain_uuid'] = $domain_uuid; - $database = new database; - $extensions = $database->select($sql, $parameters, 'all'); + $extensions = $this->database->select($sql, $parameters, 'all'); if (is_array($extensions) && sizeof($extensions) != 0) { foreach ($extensions as $row) { //get the contact_uuid @@ -1162,8 +1145,7 @@ if (is_uuid($device_user_uuid)) { $sql = "select contact_uuid from v_users where user_uuid = :device_user_uuid "; $parameters['device_user_uuid'] = $device_user_uuid; - $database = new database; - $contact_uuid = $database->select($sql, $parameters, 'column'); + $contact_uuid = $this->database->select($sql, $parameters, 'column'); $view->assign("ldap_username", "uid=" . $contact_uuid . "," . $this->settings->get('provision','grandstream_ldap_user_base', '')); $view->assign("ldap_password",md5($laddr_salt.$device_user_uuid)); unset($sql, $parameters); @@ -1295,8 +1277,7 @@ $sql = "select * from v_devices "; //$sql .= "where domain_uuid = :domain_uuid "; //$parameters['domain_uuid'] = $this->domain_uuid; - $database = new database; - $result = $database->select($sql, null, 'all'); + $result = $this->database->select($sql, null, 'all'); //process each device if (is_array($result)) { @@ -1306,7 +1287,7 @@ $device_uuid = $row["device_uuid"]; $device_address = $row["device_address"]; $device_label = $row["device_label"]; - $device_vendor = strtolower($row["device_vendor"]); + $device_vendor = strtolower($row["device_vendor"] ?? ''); $device_model = $row["device_model"]; $device_firmware_version = $row["device_firmware_version"]; $device_enabled = $row["device_enabled"];