diff --git a/app/devices/resources/classes/device.php b/app/devices/resources/classes/device.php index 0a34747748..cb7d2672d6 100644 --- a/app/devices/resources/classes/device.php +++ b/app/devices/resources/classes/device.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Copyright (C) 2010 - 2019 + Copyright (C) 2010 - 2024 All Rights Reserved. Contributor(s): @@ -45,11 +45,32 @@ private $toggle_field; private $toggle_values; - public function __construct() { + /** + * Set in the constructor. Must be a database object and cannot be null. + * @var database Database Object + */ + private $database; + + /** + * Create a settings object using key/value pairs in the $setting_array. + * + * Valid values are: database. + * @param array setting_array + * @depends database::new() + * @access public + */ + public function __construct($setting_array = []) { + + //open a database connection + if (empty($setting_array['database'])) { + $this->database = database::new(); + } else { + $this->database = $setting_array['database']; + } //assign private variables - $this->app_name = 'devices'; - $this->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e'; + $this->app_name = 'devices'; + $this->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e'; } @@ -477,8 +498,7 @@ if (!empty($record['checked']) && $record['checked'] == 'true' && is_uuid($record['uuid'])) { $sql = "update v_devices set device_uuid_alternate = null where device_uuid_alternate = :device_uuid_alternate; "; $parameters['device_uuid_alternate'] = $record['uuid']; - $database = new database; - $database->execute($sql, $parameters); + $this->database->execute($sql, $parameters); unset($sql, $parameters); $array[$this->table][$x][$this->uuid_prefix.'uuid'] = $record['uuid']; @@ -498,10 +518,9 @@ $p->add('device_key_delete', 'temp'); //execute delete - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->delete($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->delete($array); unset($array); //revoke temporary permissions @@ -561,10 +580,9 @@ //delete the checked rows if (!empty($array) && is_array($array) && @sizeof($array) != 0) { //execute delete - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->delete($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->delete($array); unset($array); } unset($records); @@ -608,10 +626,9 @@ //delete the checked rows if (!empty($array) && is_array($array) && @sizeof($array) != 0) { //execute delete - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->delete($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->delete($array); unset($array); } unset($records); @@ -655,10 +672,9 @@ //delete the checked rows if (!empty($array) && is_array($array) && @sizeof($array) != 0) { //execute delete - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->delete($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->delete($array); unset($array); } unset($records); @@ -711,10 +727,9 @@ $p->add('device_vendor_function_group_delete', 'temp'); //execute delete - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->delete($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->delete($array); unset($array); //revoke temporary permissions @@ -773,10 +788,9 @@ $p->add('device_vendor_function_group_delete', 'temp'); //execute delete - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->delete($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->delete($array); unset($array); //revoke temporary permissions @@ -836,10 +850,9 @@ $p->add('device_profile_setting_delete', 'temp'); //execute delete - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->delete($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->delete($array); unset($array); //revoke temporary permissions @@ -889,10 +902,9 @@ //execute delete if (!empty($array) && is_array($array) && @sizeof($array) != 0) { - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->delete($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->delete($array); unset($array); } unset($records); @@ -935,10 +947,9 @@ //execute delete if (!empty($array) && is_array($array) && @sizeof($array) != 0) { - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->delete($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->delete($array); unset($array); } unset($records); @@ -988,8 +999,7 @@ $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) "; $sql .= "and ".$this->uuid_prefix."uuid in (".implode(', ', $uuids).") "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - $database = new database; - $rows = $database->select($sql, $parameters, 'all'); + $rows = $this->database->select($sql, $parameters, 'all'); if (is_array($rows) && @sizeof($rows) != 0) { foreach ($rows as $row) { $states[$row['uuid']] = $row['toggle']; @@ -1010,10 +1020,9 @@ if (!empty($array) && is_array($array) && @sizeof($array) != 0) { //save the array - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->save($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->save($array); unset($array); //write the provision files @@ -1068,8 +1077,7 @@ if (is_array($uuids) && @sizeof($uuids) != 0) { $sql = "select ".$this->uuid_prefix."uuid as uuid, ".$this->toggle_field." as toggle from v_".$this->table." "; $sql .= "where ".$this->uuid_prefix."uuid in (".implode(', ', $uuids).") "; - $database = new database; - $rows = $database->select($sql, $parameters ?? null, 'all'); + $rows = $this->database->select($sql, $parameters ?? null, 'all'); if (is_array($rows) && @sizeof($rows) != 0) { foreach ($rows as $row) { $states[$row['uuid']] = $row['toggle']; @@ -1090,10 +1098,9 @@ if (!empty($array) && is_array($array) && @sizeof($array) != 0) { //save the array - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->save($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->save($array); unset($array); //set message @@ -1141,8 +1148,7 @@ if (is_array($uuids) && @sizeof($uuids) != 0) { $sql = "select ".$this->uuid_prefix."uuid as uuid, ".$this->toggle_field." as toggle from v_".$this->table." "; $sql .= "where ".$this->uuid_prefix."uuid in (".implode(', ', $uuids).") "; - $database = new database; - $rows = $database->select($sql, $parameters ?? null, 'all'); + $rows = $this->database->select($sql, $parameters ?? null, 'all'); if (is_array($rows) && @sizeof($rows) != 0) { foreach ($rows as $row) { $states[$row['uuid']] = $row['toggle']; @@ -1163,10 +1169,9 @@ if (!empty($array) && is_array($array) && @sizeof($array) != 0) { //save the array - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->save($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->save($array); unset($array); //set message @@ -1214,8 +1219,7 @@ if (!empty($uuids) && is_array($uuids) && @sizeof($uuids) != 0) { $sql = "select ".$this->uuid_prefix."uuid as uuid, ".$this->toggle_field." as toggle from v_".$this->table." "; $sql .= "where ".$this->uuid_prefix."uuid in (".implode(', ', $uuids).") "; - $database = new database; - $rows = $database->select($sql, $parameters ?? null, 'all'); + $rows = $this->database->select($sql, $parameters ?? null, 'all'); if (is_array($rows) && @sizeof($rows) != 0) { foreach ($rows as $row) { $states[$row['uuid']] = $row['toggle']; @@ -1238,10 +1242,9 @@ if (!empty($array) && is_array($array) && @sizeof($array) != 0) { //save the array - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->save($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->save($array); unset($array); //set message @@ -1294,8 +1297,7 @@ $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) "; $sql .= "and ".$this->uuid_prefix."uuid in (".implode(', ', $uuids).") "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - $database = new database; - $rows = $database->select($sql, $parameters, 'all'); + $rows = $this->database->select($sql, $parameters, 'all'); if (is_array($rows) && @sizeof($rows) != 0) { $y = $z = 0; foreach ($rows as $x => $row) { @@ -1320,8 +1322,7 @@ $sql_2 .= "else 100 end, "; $sql_2 .= "profile_key_id asc "; $parameters_2['device_profile_uuid'] = $row['device_profile_uuid']; - $database = new database; - $rows_2 = $database->select($sql_2, $parameters_2, 'all'); + $rows_2 = $this->database->select($sql_2, $parameters_2, 'all'); if (is_array($rows_2) && @sizeof($rows_2) != 0) { foreach ($rows_2 as $row_2) { @@ -1342,8 +1343,7 @@ //settings sub table $sql_3 = "select * from v_device_profile_settings where device_profile_uuid = :device_profile_uuid"; $parameters_3['device_profile_uuid'] = $row['device_profile_uuid']; - $database = new database; - $rows_3 = $database->select($sql_3, $parameters_3, 'all'); + $rows_3 = $this->database->select($sql_3, $parameters_3, 'all'); if (is_array($rows_3) && @sizeof($rows_3) != 0) { foreach ($rows_3 as $row_3) { @@ -1375,10 +1375,9 @@ $p->add('device_profile_setting_add', 'temp'); //save the array - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->save($array); + $this->database->app_name = $this->app_name; + $this->databasee->app_uuid = $this->app_uuid; + $this->database->save($array); unset($array); //revoke temporary permissions