Browse Source

Merge branch 'main' into isptelecom-provider-changes

FusionPBX 1 năm trước cách đây
mục cha
commit
365d2d4c1e
4 tập tin đã thay đổi với 26 bổ sung9 xóa
  1. 14 5
      message_media.php
  2. 9 1
      messages.php
  3. 1 3
      messages_thread.php
  4. 2 0
      resources/classes/messages.php

+ 14 - 5
message_media.php

@@ -34,19 +34,28 @@
 		$width = str_replace('px','',$_GET['width']);
 	}
 
+//build a list of groups the user is a member of to be used in a SQL in
+	foreach($_SESSION['user']['groups'] as $group) {
+		if (is_uuid($group['group_uuid'])) {
+			$group_uuids[] =  $group['group_uuid'];
+		}
+	}
+	$group_uuids_in = "'".implode("','", $group_uuids)."'";
+
 //get media
 	if (is_uuid($message_media_uuid)) {
 
 		//get the media details from the database
-		$sql = "select message_media_name, message_media_type, message_media_url, message_media_content ";
-		$sql .= "from v_message_media ";
-		$sql .= "where message_media_uuid = :message_media_uuid ";
+		$sql = "select mm.message_media_name, mm.message_media_type, mm.message_media_url, mm.message_media_content ";
+		$sql .= "from v_message_media mm ";
+		$sql .= "JOIN v_messages m ON (m.message_uuid = mm.message_uuid)";
+		$sql .= "where mm.message_media_uuid = :message_media_uuid ";
 		if (is_uuid($_SESSION['user_uuid'])) {
-			$sql .= "and user_uuid = :user_uuid ";
+			$sql .= "and (mm.user_uuid = :user_uuid or m.group_uuid in (".$group_uuids_in."))";
 			$parameters['user_uuid'] = $_SESSION['user_uuid'];
 		}
 		if (is_uuid($_SESSION['domain_uuid'])) {
-			$sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) ";
+			$sql .= "and (mm.domain_uuid = :domain_uuid or mm.domain_uuid is null) ";
 			$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
 		}
 		$parameters['message_media_uuid'] = $message_media_uuid;

+ 9 - 1
messages.php

@@ -64,10 +64,18 @@
 	$language = new text;
 	$text = $language->get();
 
+//build a list of groups the user is a member of to be used in a SQL in
+	foreach($_SESSION['user']['groups'] as $group) {
+		if (is_uuid($group['group_uuid'])) {
+			$group_uuids[] =  $group['group_uuid'];
+		}
+	}
+	$group_uuids_in = "'".implode("','", $group_uuids)."'";
+
 //get the message from
 	$sql = "select destination_number from v_destinations ";
 	$sql .= "where domain_uuid = :domain_uuid ";
-	$sql .= "and user_uuid = :user_uuid ";
+	$sql .= "and (user_uuid = :user_uuid OR group_uuid IN (".$group_uuids_in.")) ";
 	$sql .= "and destination_type_text = 1 ";
 	$sql .= "and destination_enabled = 'true' ";
 	$sql .= "order by destination_number asc ";

+ 1 - 3
messages_thread.php

@@ -118,8 +118,7 @@
 			$sql .= "message_media_type, ";
 			$sql .= "length(decode(message_media_content,'base64')) as message_media_size ";
 			$sql .= "from v_message_media ";
-			$sql .= "where user_uuid = :user_uuid ";
-			$sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) ";
+			$sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) ";
 			$sql .= "and ( ";
 			foreach ($messages as $index => $message) {
 				$message_uuids[] = "message_uuid = :message_uuid_".$index;
@@ -128,7 +127,6 @@
 			$sql .= implode(' or ', $message_uuids);
 			$sql .= ") ";
 			$sql .= "and message_media_type <> 'txt' ";
-			$parameters['user_uuid'] = $_SESSION['user_uuid'];
 			$parameters['domain_uuid'] = $domain_uuid;
 			$database = new database;
 			$rows = $database->select($sql, $parameters, 'all');

+ 2 - 0
resources/classes/messages.php

@@ -179,6 +179,7 @@ if (!class_exists('messages')) {
 					$domain_uuid = $row['domain_uuid'];
 					$provider_uuid = $row['provider_uuid'];
 					$user_uuid = $row['user_uuid'];
+					$group_uuid = $row['group_uuid'];
 					unset($row);
 				}
 				//if (!empty($debug)) {
@@ -234,6 +235,7 @@ if (!class_exists('messages')) {
 				$array['message_queue'][0]['domain_uuid'] = $_SESSION["domain_uuid"];
 				$array['message_queue'][0]['message_queue_uuid'] = $message_queue_uuid;
 				$array['message_queue'][0]['user_uuid'] = $_SESSION["user_uuid"];
+				$array['message_queue'][0]['group_uuid'] = $group_uuid;
 				//$array['message_queue'][0]['contact_uuid'] = $contact_uuid;
 				$array['message_queue'][0]['provider_uuid'] = $provider_uuid;
 				$array['message_queue'][0]['hostname'] = system('hostname');