diff --git a/app/voicemails/voicemail_messages.php b/app/voicemails/voicemail_messages.php index 98c1a2113f..903a656135 100644 --- a/app/voicemails/voicemail_messages.php +++ b/app/voicemails/voicemail_messages.php @@ -40,37 +40,93 @@ else { $text[$key] = $value[$_SESSION['domain']['language']['code']]; } -//get the uuid and voicemail_id +//set the voicemail_uuid if (strlen($_REQUEST["id"]) > 0) { $voicemail_uuid = check_str($_REQUEST["id"]); - $sql = "select * from v_voicemails "; - $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; - $sql .= "and voicemail_uuid = '$voicemail_uuid' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - $voicemail_id = $row["voicemail_id"]; - $voicemail_uuid = $row["voicemail_uuid"]; - } - unset ($prep_statement); } //set the voicemail_id array - if (strlen($_REQUEST["id"]) == 0) { - foreach ($_SESSION['user']['extension'] as $value) { - $voicemail_id[]['voicemail_id'] = $value['user']; + foreach ($_SESSION['user']['extension'] as $value) { + $voicemail_ids[]['voicemail_id'] = $value['user']; + } + +//get the uuid and voicemail_id + $sql = "select * from v_voicemails "; + $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; + if (strlen($voicemail_uuid) > 0) { + if (permission_exists('voicemail_delete')) { + //view specific voicemail box usually reserved for an admin or superadmin + $sql .= "and voicemail_uuid = '$voicemail_uuid' "; + } + else { + //ensure that the requested voicemail id is assigned to this user + $found = false; + foreach($voicemail_ids as $row) { + if ($voicemail_uuid == $row['voicemail_id']) { + $sql .= "and voicemail_id = '".$row['voicemail_id']."' "; + $found = true; + } + $x++; + } + //id requested is not owned by the user return no results + if (!$found) { + $sql .= "and voicemail_uuid = '' "; + } } } + else { + $x = 0; + if (count($voicemail_ids) > 0) { + //show only the assigned voicemail ids + $sql .= "and ("; + foreach($voicemail_ids as $row) { + if ($x == 0) { + $sql .= "voicemail_id = '".$row['voicemail_id']."' "; + } + else { + $sql .= " or voicemail_id = '".$row['voicemail_id']."'"; + } + $x++; + } + $sql .= ")"; + } + else { + //no assigned voicemail ids so return no results + $sql .= "and voicemail_uuid = '' "; + } + } + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $voicemails = $prep_statement->fetchAll(PDO::FETCH_NAMED); + unset ($prep_statement); + +//add the voicemail messages to the array + foreach ($voicemails as &$row) { + //get the voicemail messages + require_once "app/voicemails/resources/classes/voicemail.php"; + $voicemail = new voicemail; + $voicemail->db = $db; + $voicemail->domain_uuid = $_SESSION['domain_uuid']; + $voicemail->voicemail_uuid = $row['voicemail_uuid']; + $voicemail->voicemail_id = $row['voicemail_id']; + $voicemail->order_by = $order_by; + $voicemail->order = $order; + $result = $voicemail->messages(); + $voicemail_count = count($result); + $row['messages'] = $result; + } + //echo "
\n";
+	//print_r($voicemails);
+	//echo "
\n"; //download the message if (check_str($_REQUEST["action"]) == "download") { $voicemail_message_uuid = check_str($_REQUEST["uuid"]); + $voicemail_id = check_str($_REQUEST["id"]); require_once "resources/classes/voicemail.php"; $voicemail = new voicemail; $voicemail->db = $db; $voicemail->domain_uuid = $_SESSION['domain_uuid']; - $voicemail->voicemail_uuid = $voicemail_uuid; $voicemail->voicemail_id = $voicemail_id; $voicemail->voicemail_message_uuid = $voicemail_message_uuid; $result = $voicemail->message_download(); @@ -112,97 +168,78 @@ else { echo "
\n"; echo "\n"; +//set the table header $table_header = "\n"; $table_header .= th_order_by('created_epoch', $text['label-created_epoch'], $order_by, $order); //$table_header .= th_order_by('read_epoch', $text['label-read_epoch'], $order_by, $order); - $table_header .= th_order_by('caller_id_name', $text['label-caller_id_name'], $order_by, $order); - $table_header .= th_order_by('caller_id_number', $text['label-caller_id_number'], $order_by, $order); - $table_header .= th_order_by('message_length', $text['label-message_length'], $order_by, $order); - $table_header .= "\n"; - $table_header .= "\n"; - //$table_header .= th_order_by('message_priority', $text['label-message_priority'], $order_by, $order); - $table_header .= "\n"; - $table_header .= "\n"; + $table_header .= th_order_by('caller_id_name', $text['label-caller_id_name'], $order_by, $order); + $table_header .= th_order_by('caller_id_number', $text['label-caller_id_number'], $order_by, $order); + $table_header .= th_order_by('message_length', $text['label-message_length'], $order_by, $order); + $table_header .= "\n"; + $table_header .= "\n"; + //$table_header .= th_order_by('message_priority', $text['label-message_priority'], $order_by, $order); + $table_header .= "\n"; + $table_header .= "\n"; - //get the voicemail messages - require_once "app/voicemails/resources/classes/voicemail.php"; - $voicemail = new voicemail; - $voicemail->db = $db; - $voicemail->domain_uuid = $_SESSION['domain_uuid']; - //$voicemail->voicemail_uuid = $voicemail_uuid; - $voicemail->voicemail_id = $voicemail_id; - $voicemail->order_by = $order_by; - $voicemail->order = $order; - $result = $voicemail->messages(); - $result_count = count($result); - - //loop throug the voicemail messages - if ($result_count == 0) { - echo "\n"; - echo "\n"; - echo "\n"; - echo $table_header; - } - else { +//loop through the voicemail messages + if (count($voicemails) > 0) { $previous_voicemail_id = ''; - foreach($result as $row) { - if ($previous_voicemail_id != $row['voicemail_id']) { - echo "\n"; - echo "\n"; + foreach($voicemails as $field) { + if ($previous_voicemail_id != $field['voicemail_id']) { + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; echo "\n"; echo $table_header; } - if ($row['message_status'] == '') { $style = "style=\"font-weight:bold;\""; } else { $style = ''; } - echo "\n"; - //echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - //echo " \n"; - echo " \n"; - echo " \n"; - //echo " \n"; - echo " \n"; - echo "\n"; - $previous_voicemail_id = $row['voicemail_id']; - if ($c==0) { $c=1; } else { $c=0; } - } //end foreach - unset($sql, $result, $result_count); + foreach($field['messages'] as &$row) { + if ($row['message_status'] == '') { $style = "style=\"font-weight:bold;\""; } else { $style = ''; } + echo "\n"; + //echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + //echo " \n"; + echo " \n"; + echo " \n"; + //echo " \n"; + echo " \n"; + echo "\n"; + if ($c==0) { $c=1; } else { $c=0; } + } //end foreach + unset($row); + + $previous_voicemail_id = $field['voicemail_id']; + unset($sql, $result, $result_count); + } } //end if results echo "\n";
".$text['label-message_size']."".$text['label-tools']."\n"; - $table_header .= "  \n"; - $table_header .= "
".$text['label-message_size']."".$text['label-tools']."\n"; + $table_header .= "  \n"; + $table_header .= "
\n"; - echo "

\n"; - echo " ".$text['label-mailbox'].": ".$voicemail_id." \n"; - echo " \n"; - echo "
\n"; - if (permission_exists('voicemail_greeting_view')) { - echo " \n"; - } - if (permission_exists('voicemail_view')) { - echo " \n"; - } - echo "
\n"; - echo "

\n"; - echo " ".$text['label-mailbox'].": ".$row['voicemail_id']." \n"; - echo " \n"; - echo "
\n"; - echo " \n"; - echo " \n"; - echo "
\n"; + echo "

\n"; + echo " ".$text['label-mailbox'].": ".$field['voicemail_id']."  \n"; + echo "
\n"; + if (permission_exists('voicemail_greeting_view')) { + echo " \n"; + } + if (permission_exists('voicemail_view')) { + echo " \n"; + } + echo "  
"; - echo " ".$row['created_date']; - echo "".$row['read_epoch']." ".$row['caller_id_name']." ".$row['caller_id_number']." ".$row['message_length_label']." ".$row['message_status']." ".$row['file_size_label']."\n"; - //echo " \n"; - //echo " ".$text['label-play']."\n"; - //echo " \n"; - echo "   \n"; - echo " \n"; - echo " ".$text['label-download']."\n"; - echo " \n"; - echo " ".$row['message_priority']." \n"; - if (permission_exists('voicemail_message_delete')) { - echo " $v_link_label_delete\n"; - } - echo "
"; + echo " ".$row['created_date']; + echo "".$row['read_epoch']." ".$row['caller_id_name']." ".$row['caller_id_number']." ".$row['message_length_label']." ".$row['message_status']." ".$row['file_size_label']."\n"; + //echo " \n"; + //echo " ".$text['label-play']."\n"; + //echo " \n"; + echo "   \n"; + echo " \n"; + echo " ".$text['label-download']."\n"; + echo " \n"; + echo " ".$row['message_priority']." \n"; + if (permission_exists('voicemail_message_delete')) { + echo " $v_link_label_delete\n"; + } + echo "