diff --git a/api/assign_ticket.php b/api/assign_ticket.php index c616de5..1046909 100644 --- a/api/assign_ticket.php +++ b/api/assign_ticket.php @@ -76,7 +76,8 @@ if ($assignedTo === null || $assignedTo === '') { $ticket['title'] ?? "Ticket #{$ticketId}", $assigneeName, $assigneeMatrix, - $changedByDisplay + $changedByDisplay, + $ticket['visibility'] ?? 'public' ); } } diff --git a/helpers/NotificationHelper.php b/helpers/NotificationHelper.php index 532d8aa..179043f 100644 --- a/helpers/NotificationHelper.php +++ b/helpers/NotificationHelper.php @@ -280,8 +280,14 @@ class NotificationHelper * @param string|null $assigneeName Display name of new assignee * @param string|null $assigneeMatrix Matrix user ID of new assignee (to DM) * @param string|null $changedByDisplay + * @param string $visibility Ticket visibility; non-public titles are + * redacted before being sent to the shared + * notify list, same as sendTicketNotification(). + * The assignee is DMed directly regardless, + * since they now have standing access to the + * ticket by virtue of being assigned to it. */ - public static function sendAssignmentNotification($ticketId, string $ticketTitle, ?string $assigneeName, ?string $assigneeMatrix, ?string $changedByDisplay = null): void + public static function sendAssignmentNotification($ticketId, string $ticketTitle, ?string $assigneeName, ?string $assigneeMatrix, ?string $changedByDisplay = null, string $visibility = 'public'): void { $notifyUsers = self::notifyUsers(); // Also notify the assignee directly if we know their Matrix ID @@ -295,7 +301,7 @@ class NotificationHelper self::fire([ 'event' => 'assigned', 'ticket_id' => $ticketId, - 'title' => $ticketTitle, + 'title' => self::redactedTitle($ticketTitle, $visibility), 'assignee' => $assigneeName, 'changed_by' => $changedByDisplay, 'url' => UrlHelper::ticketUrl($ticketId),