summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Link.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-08-25 15:06:19 -0700
committerIvan Kohler <ivan@freeside.biz>2017-08-25 15:06:19 -0700
commitcbfeb5f6b7490f78361318ce6290bfb442dbfcbe (patch)
treee6409692bc2376649eeda94344f0a7f578a75428 /rt/lib/RT/Link.pm
parent8ffd7de981603a189cd0ea62ca948eaf3f66ca49 (diff)
parent5b5eb87bf66f1fac003a13dc2db48e8970c5c986 (diff)
Merge branch 'master' of git.freeside.biz:/home/git/freeside
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;
}