Merge pull request #6000 from christianbeeznest/ofaj-22281-2

Ticket: Fix subscribe ticket creator and skip unsubscribed notifications - refs BT#22281
pull/6006/head
Nicolas Ducoulombier 9 months ago committed by GitHub
commit 85547e2b45
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 22
      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,13 @@ 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() !== $currentUserId &&
(
$follower->getId() !== $creatorId ||
self::isUserSubscribedToTicket($ticketId, $follower->getId())
)
) {
$recipients[$follower->getId()] = $follower->getFullname(); $recipients[$follower->getId()] = $follower->getFullname();
} }
} }

Loading…
Cancel
Save