[Rt-commit] rt branch, 4.4/forbid-merging-reminders, updated. rt-4.4.2-29-g06490c0

Maureen Mirville maureen at bestpractical.com
Wed Aug 16 13:29:15 EDT 2017


The branch, 4.4/forbid-merging-reminders has been updated
       via  06490c0d875cc5473300cd488fa563554c4ee2e5 (commit)
      from  8c2ffab7059a48dce3ea46b735610a71f60fb404 (commit)

Summary of changes:
 lib/RT/Ticket.pm | 7 ++++++-
 t/ticket/merge.t | 7 ++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

- Log -----------------------------------------------------------------
commit 06490c0d875cc5473300cd488fa563554c4ee2e5
Author: Maureen E. Mirville <maureen at bestpractical.com>
Date:   Wed Aug 16 13:24:03 2017 -0400

    Non-tickets also cannot be merged
    
    Tickets with a non-ticket type property (ie reminders) cannot be
    merged into tickets.
    
    Fixes #32700

diff --git a/lib/RT/Ticket.pm b/lib/RT/Ticket.pm
index 9d1e698..34fca8f 100644
--- a/lib/RT/Ticket.pm
+++ b/lib/RT/Ticket.pm
@@ -1886,7 +1886,12 @@ sub MergeInto {
     unless ($MergeInto->Type eq 'ticket'){
 	my $id_num = $MergeInto->Id;
 	return(0, $self->loc("Id $id_num is not a ticket. Only tickets can be merged."));
-    };
+    }
+    unless ($self->Type eq 'ticket'){
+        my $self_id = $self->Id;
+        my $self_type = $self->Type;
+        return(0, $self->loc("Id $self_id is a $self_type. Only tickets can be merged."));
+    }
 
     # Make sure the current user can modify the new ticket.
     unless ( $MergeInto->CurrentUserHasRight('ModifyTicket') ) {
diff --git a/t/ticket/merge.t b/t/ticket/merge.t
index 13e5959..ff8ed8f 100644
--- a/t/ticket/merge.t
+++ b/t/ticket/merge.t
@@ -206,7 +206,12 @@ ok $user && $user->id, 'loaded or created user';
   is($found, 1, 'Reminder successfully added');
 
   # verify ticket cannot be merged into non-ticket type
-  my($status, $msg) = $ticket_1->MergeInto($reminder);
+  my($status, $msg) = $ticket_2->MergeInto($reminder);
   ok(!$status, 'Only tickets can be merged');
+
+  # verify non-ticket type cannot merge into a ticket
+  my($st, $note) = $reminder->MergeInto($ticket_2);
+  ok(!$st, 'Non-ticket types cannot merge into tickets');
+
 }
 done_testing();

-----------------------------------------------------------------------


More information about the rt-commit mailing list