summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Link.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-08-06 10:11:28 -0700
committerIvan Kohler <ivan@freeside.biz>2017-08-06 10:11:28 -0700
commitde9d037528895f7151a9aead6724ce2df95f9586 (patch)
tree3ba47a923a1d6033605ffc5586ed1af439d8c141 /rt/lib/RT/Link.pm
parentb226bc6bd81f999176cdbfa53a799033ff0a0307 (diff)
rt 4.2.14 (#13852)
Diffstat (limited to 'rt/lib/RT/Link.pm')
-rw-r--r--rt/lib/RT/Link.pm23
1 files changed, 22 insertions, 1 deletions
diff --git a/rt/lib/RT/Link.pm b/rt/lib/RT/Link.pm
index 0dadc3be8..3160d24fb 100644
--- a/rt/lib/RT/Link.pm
+++ b/rt/lib/RT/Link.pm
@@ -2,7 +2,7 @@
#
# COPYRIGHT:
#
-# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
# <sales@bestpractical.com>
#
# (Except where explicitly superseded by other copyright notices)
@@ -558,6 +558,27 @@ sub Serialize {
delete $store{LocalBase} if $store{Base};
delete $store{LocalTarget} if $store{Target};
+
+ for my $dir (qw/Base Target/) {
+ my $uri = $self->${\($dir.'URI')};
+ my $object = $self->${\($dir.'Obj')};
+
+ if ($uri->IsLocal) {
+ if ($args{serializer}->Observe(object => $object)) {
+ # no action needed; the object is being migrated
+ }
+ elsif ($args{serializer}{HyperlinkUnmigrated}) {
+ # object is not being migrated; hyperlinkify
+ $store{$dir} = $uri->AsHREF;
+ }
+ else {
+ # object is not being migrated and hyperlinks not desired,
+ # so drop this RT::Link altogether
+ return;
+ }
+ }
+ }
+
return %store;
}