diff --git a/app/fax/fax_send.php b/app/fax/fax_send.php index be513bad31..d07fa619d3 100644 --- a/app/fax/fax_send.php +++ b/app/fax/fax_send.php @@ -861,7 +861,7 @@ if (!$included) { $sql .= "and cp.phone_type_fax = 1 "; $sql .= "and cp.phone_number is not null "; $sql .= "and cp.phone_number <> '' "; - if ($setting->get('contact','permissions') == "true") { + if ($setting->get('contact','permissions', false)) { if (is_array($user_group_uuids) && @sizeof($user_group_uuids) != 0) { //only show contacts assigned to current user's group(s) and those not assigned to any group $sql .= "and ("; diff --git a/app/fax_queue/fax_queue.php b/app/fax_queue/fax_queue.php index b83fee27bf..1822255f86 100644 --- a/app/fax_queue/fax_queue.php +++ b/app/fax_queue/fax_queue.php @@ -324,7 +324,7 @@ echo th_order_by('fax_retry_date', $text['label-fax_retry_date'], $order_by, $order); echo th_order_by('fax_notify_date', $text['label-fax_notify_date'], $order_by, $order); echo th_order_by('fax_retry_count', $text['label-fax_retry_count'], $order_by, $order); - if ($permission['fax_queue_edit'] && $settings->get('theme', 'list_row_edit_button', 'false') == 'true') { + if ($permission['fax_queue_edit'] && $settings->get('theme', 'list_row_edit_button', false)) { echo "  \n"; } echo "\n"; @@ -358,7 +358,7 @@ echo " ".escape($row['fax_retry_date_formatted'])." ".escape($row['fax_retry_time_formatted'])."\n"; echo " ".escape($row['fax_notify_date_formatted'])." ".escape($row['fax_notify_time_formatted'])."\n"; echo " ".escape($row['fax_retry_count'])."\n"; - if ($permission['fax_queue_edit'] && $settings->get('theme', 'list_row_edit_button', 'false') == 'true') { + if ($permission['fax_queue_edit'] && $settings->get('theme', 'list_row_edit_button', false)) { echo " \n"; echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon' => $settings->get('theme', 'button_icon_edit'),'link'=>$list_row_url]); echo " \n"; diff --git a/app/xml_cdr/resources/classes/xml_cdr.php b/app/xml_cdr/resources/classes/xml_cdr.php index 210088650f..1f99e54bf7 100644 --- a/app/xml_cdr/resources/classes/xml_cdr.php +++ b/app/xml_cdr/resources/classes/xml_cdr.php @@ -97,7 +97,7 @@ if (!class_exists('xml_cdr')) { public function log($message) { //save the log if enabled is true - if ($this->setting->get('log', 'enabled') == 'true') { + if ($this->setting->get('log', 'enabled', false)) { //save the log to the php error log if ($this->setting->get('log', 'type') == 'error_log') { @@ -999,7 +999,7 @@ if (!class_exists('xml_cdr')) { } //save the call log to the database - if ($this->setting->get('cdr', 'call_log_enabled') == 'true' && !empty($this->setting->get('switch', 'log')) && $this->setting->get('cdr', 'storage') == "db") { + if ($this->setting->get('cdr', 'call_log_enabled', false) && !empty($this->setting->get('switch', 'log')) && $this->setting->get('cdr', 'storage') == "db") { //get the log content $log_content = ''; $handle = @fopen($this->setting->get('switch', 'log').'/freeswitch.log', "r"); @@ -1525,7 +1525,7 @@ if (!class_exists('xml_cdr')) { //authentication for xml cdr http post if (!defined('STDIN')) { - if ($this->setting->get('cdr', 'http_enabled') == "true") { + if ($this->setting->get('cdr', 'http_enabled')) { //get the contents of xml_cdr.conf.xml $conf_xml_string = file_get_contents($this->setting->get('switch', 'conf').'/autoload_configs/xml_cdr.conf.xml'); @@ -1569,7 +1569,7 @@ if (!class_exists('xml_cdr')) { //check for the correct username and password if (!defined('STDIN')) { - if ($this->setting->get('cdr', 'http_enabled') == "true") { + if ($this->setting->get('cdr', 'http_enabled', true)) { if ($auth_array[0] == $_SERVER["PHP_AUTH_USER"] && $auth_array[1] == $_SERVER["PHP_AUTH_PW"]) { //echo "access granted\n"; $this->username = $auth_array[0]; diff --git a/resources/classes/email.php b/resources/classes/email.php index c8317ff23e..897f7f8221 100644 --- a/resources/classes/email.php +++ b/resources/classes/email.php @@ -45,10 +45,10 @@ if (!class_exists('email')) { public $subject; public $body; public $from_address; - public $from_name; + public $from_name; public $priority; - public $debug_level; - public $attachments; + public $debug_level; + public $attachments; public $read_confirmation; public $error; public $response; @@ -56,7 +56,7 @@ if (!class_exists('email')) { /** * called when the object is created */ - public function __construct() { + public function __construct($params = []) { //assign the variables $this->app_name = 'email'; $this->name = 'email'; @@ -64,6 +64,29 @@ if (!class_exists('email')) { $this->priority = 0; $this->debug_level = 3; $this->read_confirmation = false; + + //set the domain_uuid + $this->domain_uuid = $params['domain_uuid'] ?? $_SESSION['domain_uuid'] ?? ''; + + if (isset($params['settings'])) { + $this->settings = $params['settings']; + } + + //set the database from the settings object if available + if ($this->settings instanceof settings && !isset($this->database)) { + $this->database = $this->settings->database(); + } + + //ensure we have a valid database object + if (!($this->database instanceof database)) { + $this->database = $params['database'] ?? database::new(); + } + + //ensure we have a valid settings object + if (!($this->settings) instanceof settings) { + $this->settings = new settings(['database' => $this->database, 'domain_uuid' => $this->domain_uuid]); + } + } /** @@ -126,7 +149,7 @@ if (!class_exists('email')) { if (substr($body_content_type, 0, 9) == "text/html") { $this->body = $row["Body"]; } - if (substr($body_content_type, 0, 10) == "text/plain") { + if (substr($body_content_type, 0, 10) == "text/plain") { $body_plain = $row["Body"]; $this->body = $body_plain; } @@ -156,7 +179,7 @@ if (!class_exists('email')) { //testfax.tif $file = $parts_array["FileName"]; - //inline + //inline $filedisposition = $parts_array["FileDisposition"]; $body_part = $parts_array["BodyPart"]; @@ -193,7 +216,7 @@ if (!class_exists('email')) { $this->attachments[$x]['type'] = 'string'; $this->attachments[$x]['name'] = $file; $this->attachments[$x]['value'] = $parts_array["Body"]; - + //increment the id $x++; } @@ -207,17 +230,9 @@ if (!class_exists('email')) { */ public function send() { - //set the domain_uuid if not set - if (!isset($this->domain_uuid) && isset($_SESSION)) { - $this->domain_uuid = $_SESSION['domain_uuid']; - } - - //get the email queue settings - $setting = new settings(["domain_uuid" => $this->domain_uuid]); - //set the send_method if not already set if (!isset($this->method)) { - if ($setting->get('email_queue','enabled') == 'true') { + if ($setting->get('email_queue','enabled', true)) { $this->method = 'queue'; } else { @@ -324,17 +339,23 @@ if (!class_exists('email')) { $p->add("email_queue_attachment_add", 'temp'); //save the dialplan - $database = new database; - $database->app_name = 'email'; - $database->app_uuid = 'e24b5dab-3bcc-42e8-99c1-19b0c558c2d7'; - $database->save($array); - //$dialplan_response = $database->message; + $this->database->app_name = 'email'; + $this->database->app_uuid = 'e24b5dab-3bcc-42e8-99c1-19b0c558c2d7'; + $this->database->save($array); + //$dialplan_response = $this->database->message; unset($array); //remove temporary permissions $p->delete("dialplan_add", 'temp'); $p->delete("dialplan_detail_add", 'temp'); + //return a human readable response for debugging + if ($this->database->message['message'] == 'OK') { + return "Added to queue"; + } else { + //return the SQL server message + return $this->database->message['message']; + } } //send the email directly @@ -407,24 +428,24 @@ if (!class_exists('email')) { include_once("resources/phpmailer/class.smtp.php"); //use the email default settings - if (!empty($setting->get('email','smtp_hostname'))) { - $smtp['hostname'] = $setting->get('email','smtp_hostname'); + if (!empty($this->settings->get('email','smtp_hostname'))) { + $smtp['hostname'] = $this->settings->get('email','smtp_hostname'); } - $smtp['host'] = (!empty($setting->get('email','smtp_host')) ? $setting->get('email','smtp_host'): '127.0.0.1'); - if (!empty($setting->get('email','smtp_port'))) { - $smtp['port'] = (int)$setting->get('email','smtp_port'); + $smtp['host'] = (!empty($this->settings->get('email','smtp_host')) ? $this->settings->get('email','smtp_host'): '127.0.0.1'); + if (!empty($this->settings->get('email','smtp_port'))) { + $smtp['port'] = (int)$this->settings->get('email','smtp_port'); } else { $smtp['port'] = 0; } - $smtp['secure'] = $setting->get('email','smtp_secure'); - $smtp['auth'] = $setting->get('email','smtp_auth'); - $smtp['username'] = $setting->get('email','smtp_username'); - $smtp['password'] = $setting->get('email','smtp_password'); - $smtp['from'] = $setting->get('voicemail','smtp_from') ?? $setting->get('email','smtp_from'); - $smtp['from_name'] = $setting->get('voicemail','smtp_from_name') ?? $setting->get('email','smtp_from_name'); - $smtp['validate_certificate'] = $setting->get('email','smtp_validate_certificate'); - $smtp['crypto_method'] = $setting->get('email','smtp_crypto_method') ?? null; + $smtp['secure'] = $this->settings->get('email','smtp_secure'); + $smtp['auth'] = $this->settings->get('email','smtp_auth'); + $smtp['username'] = $this->settings->get('email','smtp_username'); + $smtp['password'] = $this->settings->get('email','smtp_password'); + $smtp['from'] = $this->settings->get('voicemail','smtp_from') ?? $this->settings->get('email','smtp_from'); + $smtp['from_name'] = $this->settings->get('voicemail','smtp_from_name') ?? $this->settings->get('email','smtp_from_name'); + $smtp['validate_certificate'] = $this->settings->get('email','smtp_validate_certificate'); + $smtp['crypto_method'] = $this->settings->get('email','smtp_crypto_method') ?? null; //override the domain-specific smtp server settings, if any $sql = "select domain_setting_subcategory, domain_setting_value "; @@ -433,8 +454,7 @@ if (!class_exists('email')) { $sql .= "and (domain_setting_category = 'email' or domain_setting_category = 'voicemail') "; $sql .= "and domain_setting_enabled = 'true' "; $parameters['domain_uuid'] = $this->domain_uuid; - $database = new database; - $result = $database->select($sql, $parameters, 'all'); + $result = $this->database->select($sql, $parameters, 'all'); if (is_array($result) && @sizeof($result) != 0) { foreach ($result as $row) { if ($row['domain_setting_value'] != '') {