Re-use the database object

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