summaryrefslogtreecommitdiff
path: root/FS/FS/otaker_Mixin.pm
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2015-07-31 13:46:44 -0700
committerMark Wells <mark@freeside.biz>2015-08-04 11:19:27 -0700
commitd2c37c8081873993f108f46361a804abc8aa23d9 (patch)
treed333ee938ba716c44b7c0b70692b5de038f14175 /FS/FS/otaker_Mixin.pm
parentb60645a67dffaeddb63284cd249ddab4eee87c3f (diff)
fix otaker method on history tables, probably from #13971
Diffstat (limited to 'FS/FS/otaker_Mixin.pm')
-rw-r--r--FS/FS/otaker_Mixin.pm10
1 files changed, 9 insertions, 1 deletions
diff --git a/FS/FS/otaker_Mixin.pm b/FS/FS/otaker_Mixin.pm
index 6e465f0..186c7d1 100644
--- a/FS/FS/otaker_Mixin.pm
+++ b/FS/FS/otaker_Mixin.pm
@@ -24,7 +24,15 @@ sub otaker {
$otaker; #not sure return is used anywhere, but just in case
} else { #get
if ( $self->usernum ) {
- $self->access_user->username;
+ # avoid a common failure mode: this should work even when the table
+ # isn't foreign-keyed to access_user
+ my $access_user = FS::access_user->by_key($self->usernum);
+ if (!$access_user) {
+ croak "otaker called on ".$self->table."#".
+ $self->get($self->primary_key).
+ " but user does not exist";
+ }
+ return $access_user->username;
} elsif ( length($self->get('otaker')) ) {
$self->get('otaker');
} else {