diff options
author | Mark Wells <mark@freeside.biz> | 2015-07-31 13:46:44 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2015-08-04 11:19:27 -0700 |
commit | d2c37c8081873993f108f46361a804abc8aa23d9 (patch) | |
tree | d333ee938ba716c44b7c0b70692b5de038f14175 /FS/FS/otaker_Mixin.pm | |
parent | b60645a67dffaeddb63284cd249ddab4eee87c3f (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.pm | 10 |
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 { |