Ticket: Fix subscribe ticket creator and skip unsubscribed notifications - refs BT#22281

pull/6000/head
Christian Beeznest 9 months ago
parent d40def167f
commit bb196c55cd
  1. 16
      public/main/inc/lib/TicketManager.php

@ -392,6 +392,7 @@ class TicketManager
$ticketId = Database::insert($table_support_tickets, $params); $ticketId = Database::insert($table_support_tickets, $params);
if ($ticketId) { if ($ticketId) {
self::subscribeUserToTicket($ticketId, $currentUserId);
$ticket_code = 'A'.str_pad($ticketId, 11, '0', STR_PAD_LEFT); $ticket_code = 'A'.str_pad($ticketId, 11, '0', STR_PAD_LEFT);
$titleCreated = sprintf( $titleCreated = sprintf(
get_lang('Ticket %s created'), get_lang('Ticket %s created'),
@ -557,11 +558,11 @@ class TicketManager
// Send notification to all users // Send notification to all users
if (!empty($usersInCategory)) { if (!empty($usersInCategory)) {
foreach ($usersInCategory as $data) { foreach ($usersInCategory as $data) {
if ($data['user_id']) { if ($data['user_id'] && $data['user_id'] !== $currentUserId) {
self::sendNotification( self::sendNotification(
$ticketId, $ticketId,
$subject, $titleCreated,
$message, $helpDeskMessage,
$data['user_id'] $data['user_id']
); );
} }
@ -1375,6 +1376,7 @@ class TicketManager
$ticketCode = $ticketInfo['ticket']['code']; $ticketCode = $ticketInfo['ticket']['code'];
$status = $ticketInfo['ticket']['status']; $status = $ticketInfo['ticket']['status'];
$priority = $ticketInfo['ticket']['priority']; $priority = $ticketInfo['ticket']['priority'];
$creatorId = $ticketInfo['ticket']['sys_insert_user_id'];
// Subject // Subject
$titleEmail = "[$ticketCode] $title"; $titleEmail = "[$ticketCode] $title";
@ -1394,7 +1396,11 @@ class TicketManager
if (!empty($onlyToUserId) && $currentUserId != $onlyToUserId) { if (!empty($onlyToUserId) && $currentUserId != $onlyToUserId) {
$recipients[$onlyToUserId] = $onlyToUserId; $recipients[$onlyToUserId] = $onlyToUserId;
} else { } else {
if ($requestUserInfo && $currentUserId != $requestUserInfo['id']) { if (
$requestUserInfo &&
$currentUserId != $requestUserInfo['id'] &&
self::isUserSubscribedToTicket($ticketId, $requestUserInfo['id'])
) {
$recipients[$requestUserInfo['id']] = $requestUserInfo['complete_name_with_username']; $recipients[$requestUserInfo['id']] = $requestUserInfo['complete_name_with_username'];
} }
@ -1405,7 +1411,7 @@ class TicketManager
$followers = self::getFollowers($ticketId); $followers = self::getFollowers($ticketId);
/* @var User $follower */ /* @var User $follower */
foreach ($followers as $follower) { foreach ($followers as $follower) {
if ($currentUserId != $follower->getId()) { if ($follower->getId() !== $creatorId || self::isUserSubscribedToTicket($ticketId, $follower->getId())) {
$recipients[$follower->getId()] = $follower->getFullname(); $recipients[$follower->getId()] = $follower->getFullname();
} }
} }

Loading…
Cancel
Save