X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_acct.pm;h=b201f23531ef0a1f9df6afbf91a1e609d62fad82;hb=97316d268e5751a1d08a0a37e5a0456f2ce4815c;hp=e7d2b37b682f87aac91fbd6766516dd8744a223d;hpb=ad18fd616d98b80945b455ca170ba02089723873;p=freeside.git diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index e7d2b37b6..b201f2353 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -192,11 +192,11 @@ sub _fieldhandlers { { #false laziness with edit/svc_acct.cgi 'usergroup' => sub { - my $usergroup = shift; - if ( ref($usergroup) eq 'ARRAY' ) { - $usergroup; - } elsif ( length($usergroup) ) { - [ split(/\s*,\s*/, $usergroup) ]; + my( $self, $groups ) = @_; + if ( ref($groups) eq 'ARRAY' ) { + $groups; + } elsif ( length($groups) ) { + [ split(/\s*,\s*/, $groups) ]; } else { []; } @@ -484,6 +484,11 @@ sub replace { my $error; warn "$me replacing $old with $new\n" if $DEBUG; + # We absolutely have to have an old vs. new record to make this work. + if (!defined($old)) { + $old = qsearchs( 'svc_acct', { 'svcnum' => $new->svcnum } ); + } + return "can't modify system account" if $old->_check_system; {