diff --git a/app/messages/app_defaults.php b/app/messages/app_defaults.php
index 8031dafca1..178a83add5 100644
--- a/app/messages/app_defaults.php
+++ b/app/messages/app_defaults.php
@@ -33,7 +33,8 @@ if ($domains_processed == 1) {
$sql .= "where default_setting_category = 'message' ";
$sql .= "and default_setting_subcategory = 'http_auth_password' ";
$sql .= "and default_setting_name = 'array' ";
- $db->exec($sql);
+ $database = new database;
+ $database->execute($sql);
unset($sql);
//update domain settings
@@ -42,7 +43,8 @@ if ($domains_processed == 1) {
$sql .= "where domain_setting_category = 'message' ";
$sql .= "and domain_setting_subcategory = 'http_auth_password' ";
$sql .= "and domain_setting_name = 'array' ";
- $db->exec($sql);
+ $database = new database;
+ $database->execute($sql);
unset($sql);
}
diff --git a/app/messages/index.php b/app/messages/index.php
index abf8768396..c5f6ae24b8 100644
--- a/app/messages/index.php
+++ b/app/messages/index.php
@@ -29,43 +29,40 @@
require_once "resources/require.php";
//default authorized to false
- $authorized = 'false';
+ $authorized = false;
//get the user settings
$sql = "select user_uuid, domain_uuid from v_user_settings ";
$sql .= "where user_setting_category = 'message' ";
$sql .= "and user_setting_subcategory = 'key' ";
- $sql .= "and user_setting_value = :key ";
+ $sql .= "and user_setting_value = :user_setting_value ";
$sql .= "and user_setting_enabled = 'true' ";
- $prep_statement = $db->prepare($sql);
- $prep_statement->bindParam(':key', $_GET['key']);
- if ($prep_statement) {
- $prep_statement->execute();
- $row = $prep_statement->fetch(PDO::FETCH_NAMED);
- if (is_uuid($row['user_uuid'])) {
- $domain_uuid = $row['domain_uuid'];
- $user_uuid = $row['user_uuid'];
- $authorized = 'true';
- }
+ $parameters['user_setting_value'] = $_GET['key'];
+ $database = new database;
+ $row = $database->select($sql, $parameters, 'row');
+ if (is_array($row) && @sizeof($row) != 0 && is_uuid($row['user_uuid'])) {
+ $domain_uuid = $row['domain_uuid'];
+ $user_uuid = $row['user_uuid'];
+ $authorized = true;
}
//authorization failed
- if ($authorized == 'false') {
+ if (!$authorized) {
//log the failed auth attempt to the system, to be available for fail2ban.
- openlog('FusionPBX', LOG_NDELAY, LOG_AUTH);
- syslog(LOG_WARNING, '['.$_SERVER['REMOTE_ADDR']."] authentication failed for ".$_GET['key']);
- closelog();
+ openlog('FusionPBX', LOG_NDELAY, LOG_AUTH);
+ syslog(LOG_WARNING, '['.$_SERVER['REMOTE_ADDR']."] authentication failed for ".$_GET['key']);
+ closelog();
//send http 404
- header("HTTP/1.0 404 Not Found");
- echo "\n";
- echo "
404 Not Found\n";
- echo "\n";
- echo "404 Not Found
\n";
- echo "
nginx/1.12.1\n";
- echo "\n";
- echo "\n";
- exit();
+ header("HTTP/1.0 404 Not Found");
+ echo "\n";
+ echo "404 Not Found\n";
+ echo "\n";
+ echo "404 Not Found
\n";
+ echo "
nginx/1.12.1\n";
+ echo "\n";
+ echo "\n";
+ exit();
}
//get the raw input data
@@ -81,18 +78,13 @@
$sql = "select c.contact_uuid ";
$sql .= "from v_contacts as c, v_contact_phones as p ";
$sql .= "where p.contact_uuid = c.contact_uuid ";
- //$sql .= "and p.phone_number = :phone_number ";
- $sql .= "and p.phone_number = '".$phone_number."' ";
- $sql .= "and c.domain_uuid = '".$domain_uuid."' ";
- $prep_statement = $db->prepare($sql);
- //$prep_statement->bindParam(':phone_number', $phone_number);
- $prep_statement->execute();
- $row = $prep_statement->fetch(PDO::FETCH_NAMED);
- $contact_uuid = $row['contact_uuid'];
- //$contact_name_given = $row['contact_name_given'];
- //$contact_name_family = $row['contact_name_family'];
- //$contact_organization = $row['contact_organization'];
-
+ $sql .= "and p.phone_number = :phone_number ";
+ $sql .= "and c.domain_uuid = :domain_uuid ";
+ $parameters['phone_number'] = $phone_number;
+ $parameters['domain_uuid'] = $domain_uuid;
+ $database = new database;
+ $contact_uuid = $database->select($sql, $parameters, 'column');
+ unset($sql, $parameters);
//build message array
$message_uuid = uuid();
@@ -109,6 +101,10 @@
$array['messages'][0]['message_text'] = $message['text'];
$array['messages'][0]['message_json'] = $json;
+//add the required permission
+ $p = new permissions;
+ $p->add("message_add", "temp");
+
//build message media array (if necessary)
if (is_array($message['media'])) {
foreach($message['media'] as $index => $media_url) {
@@ -123,18 +119,14 @@
$array['message_media'][$index]['message_media_content'] = base64_encode(file_get_contents($media_url));
}
}
- }
-//add the required permission
- $p = new permissions;
- $p->add("message_add", "temp");
- $p->add("message_media_add", "temp");
+ $p->add("message_media_add", "temp");
+ }
//save message to the database
$database = new database;
$database->app_name = 'messages';
$database->app_uuid = '4a20815d-042c-47c8-85df-085333e79b87';
- $database->uuid($message_uuid);
$database->save($array);
$result = $database->message;
@@ -147,14 +139,17 @@
//get the list of extensions using the user_uuid
$sql = "select * from v_domains as d, v_extensions as e ";
- $sql .= "where extension_uuid in (select extension_uuid from v_extension_users where user_uuid = '".$user_uuid."') ";
+ $sql .= "where extension_uuid in ( ";
+ $sql .= " select extension_uuid ";
+ $sql .= " from v_extension_users ";
+ $sql .= " where user_uuid = :user_uuid ";
+ $sql .= ") ";
$sql .= "and e.domain_uuid = d.domain_uuid ";
$sql .= "and e.enabled = 'true' ";
- $prep_statement = $db->prepare($sql);
- if ($prep_statement) {
- $prep_statement->execute();
- $extensions = $prep_statement->fetchall(PDO::FETCH_NAMED);
- }
+ $parameters['user_uuid'] = $user_uuid;
+ $database = new database;
+ $extensions = $database->select($sql, $parameters, 'all');
+ unset($sql, $parameters);
//create the event socket connection
if (is_array($extensions)) {
@@ -162,7 +157,7 @@
}
//send the sip message
- if (is_array($extensions)) {
+ if (is_array($extensions) && @sizeof($extensions) != 0) {
foreach ($extensions as $row) {
$domain_name = $row['domain_name'];
$extension = $row['extension'];
@@ -176,6 +171,7 @@
$response = event_socket_request($fp, "api log notice ".$command);
}
}
+ unset($extensions, $row);
//set the file
//$file = '/tmp/sms.txt';
diff --git a/app/messages/message_delete.php b/app/messages/message_delete.php
index c92efc11bd..5b74951270 100644
--- a/app/messages/message_delete.php
+++ b/app/messages/message_delete.php
@@ -27,31 +27,43 @@
//includes
require_once "root.php";
require_once "resources/require.php";
+ require_once "resources/check_auth.php";
+
+//check permissions
+ if (!permission_exists('message_delete')) {
+ echo "access denied";
+ exit;
+ }
//add multi-lingual support
$language = new text;
$text = $language->get();
+//get the id
+ $message_uuids = $_REQUEST['messages'];
+
//delete the message
- message::add($text['message-delete']);
-
-//delete the data
- if (isset($_GET["id"]) && is_uuid($_GET["id"]) && permission_exists('message_delete')) {
-
- //get the id
- $id = check_str($_GET["id"]);
+ if (is_array($message_uuids) && @sizeof($message_uuids) != 0) {
//delete message
- $sql = "delete from v_messages ";
- $sql .= "where message_uuid = '$id' ";
- $sql .= "and domain_uuid = '$domain_uuid' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- unset($sql);
+ foreach ($message_uuids as $index => $message_uuid) {
+ $array['messages'][$index]['message_uuid'] = $message_uuid;
+ $array['messages'][$index]['domain_uuid'] = $domain_uuid;
+ }
+
+ $database = new database;
+ $database->app_name = 'messages';
+ $database->app_uuid = '4a20815d-042c-47c8-85df-085333e79b87';
+ $database->delete($array);
+ unset($array);
+
+ //set message
+ message::add($text['message-delete']);
- //redirect the user
- header('Location: messages_log.php');
}
+//redirect the user
+ header('Location: messages_log.php');
+ exit;
?>
\ No newline at end of file
diff --git a/app/messages/message_edit.php b/app/messages/message_edit.php
index 20ff959360..5b50b523a2 100644
--- a/app/messages/message_edit.php
+++ b/app/messages/message_edit.php
@@ -43,10 +43,9 @@
$text = $language->get();
//action add or update
- if (isset($_REQUEST["id"])) {
+ if (is_uuid($_REQUEST["id"])) {
$action = "update";
- $message_uuid = check_str($_REQUEST["id"]);
- $id = check_str($_REQUEST["id"]);
+ $message_uuid = $_REQUEST["id"];
}
else {
$action = "add";
@@ -54,18 +53,18 @@
//get http post variables and set them to php variables
if (is_array($_POST)) {
- $message_uuid = check_str($_POST["message_uuid"]);
- //$user_uuid = check_str($_POST["user_uuid"]);
- $message_type = check_str($_POST["message_type"]);
- $message_direction = check_str($_POST["message_direction"]);
- $message_date = check_str($_POST["message_date"]);
- $message_from = check_str($_POST["message_from"]);
- $message_to = check_str($_POST["message_to"]);
- $message_text = check_str($_POST["message_text"]);
- $message_media_type = check_str($_POST["message_media_type"]);
- $message_media_url = check_str($_POST["message_media_url"]);
- $message_media_content = check_str($_POST["message_media_content"]);
- $message_json = check_str($_POST["message_json"]);
+ $message_uuid = $_POST["message_uuid"];
+ //$user_uuid = $_POST["user_uuid"];
+ $message_type = $_POST["message_type"];
+ $message_direction = $_POST["message_direction"];
+ $message_date = $_POST["message_date"];
+ $message_from = $_POST["message_from"];
+ $message_to = $_POST["message_to"];
+ $message_text = $_POST["message_text"];
+ $message_media_type = $_POST["message_media_type"];
+ $message_media_url = $_POST["message_media_url"];
+ $message_media_content = $_POST["message_media_content"];
+ $message_json = $_POST["message_json"];
}
//process the user data and save it to the database
@@ -73,7 +72,7 @@
//get the uuid from the POST
if ($action == "update") {
- $message_uuid = check_str($_POST["message_uuid"]);
+ $message_uuid = $_POST["message_uuid"];
}
//check for all required data
@@ -106,7 +105,7 @@
$_POST["domain_uuid"] = $_SESSION["domain_uuid"];
//add the message_uuid
- if (strlen($_POST["message_uuid"]) == 0) {
+ if (!is_uuid($_POST["message_uuid"])) {
$message_uuid = uuid();
$_POST["message_uuid"] = $message_uuid;
}
@@ -117,18 +116,8 @@
//save to the data
$database = new database;
$database->app_name = 'messages';
- $database->app_uuid = null;
- if (strlen($message_uuid) > 0) {
- $database->uuid($message_uuid);
- }
+ $database->app_uuid = '4a20815d-042c-47c8-85df-085333e79b87';
$database->save($array);
- $message = $database->message;
-
- //debug info
- //echo "";
- //print_r($message);
- //echo "
";
- //exit;
//redirect the user
if (isset($action)) {
@@ -139,20 +128,19 @@
message::add($text['message-update']);
}
header('Location: message_edit.php?id='.$message_uuid);
- return;
+ exit;
}
- } //(is_array($_POST) && strlen($_POST["persistformvar"]) == 0)
+ }
//pre-populate the form
if (is_array($_GET) && $_POST["persistformvar"] != "true") {
- $message_uuid = check_str($_GET["id"]);
+ $message_uuid = $_GET["id"];
$sql = "select * from v_messages ";
- $sql .= "where message_uuid = '$message_uuid' ";
- //$sql .= "and domain_uuid = '$domain_uuid' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- foreach ($result as &$row) {
+ $sql .= "where message_uuid = :message_uuid ";
+ $parameters['message_uuid'] = $message_uuid;
+ $database = new database;
+ $row = $database->select($sql, $parameters, 'row');
+ if (is_array($row) && @sizeof($row) != 0) {
$user_uuid = $row["user_uuid"];
$message_type = $row["message_type"];
$message_direction = $row["message_direction"];
@@ -165,28 +153,21 @@
$message_media_content = $row["message_media_content"];
$message_json = $row["message_json"];
}
- unset ($prep_statement);
+ unset($sql, $parameters);
}
//show the header
require_once "resources/header.php";
-//get the extensions
- $sql = "select * from v_users ";
- $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
- $sql .= "and user_enabled = 'true' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $users = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- unset ($prep_statement, $sql);
-
//get the users
- $sql = "SELECT user_uuid, username FROM v_users ";
- $sql .= "WHERE domain_uuid = '".$_SESSION['domain_uuid']."' ";
- $sql .= "ORDER by username asc ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $users = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+ $sql = "select user_uuid, username from v_users ";
+ $sql .= "where domain_uuid = :domain_uuid ";
+ $sql .= "and user_enabled = 'true' ";
+ $sql .= "order by username asc ";
+ $parameters['domain_uuid'] = $_SESSION['domain_uuid'];
+ $database = new database;
+ $users = $database->select($sql, $parameters, 'all');
+ unset($sql, $parameters);
//show the content
echo "