X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fotaker_Mixin.pm;h=4aa47c38d82d85384a94c518524851f92f5e1eb4;hb=f9a89c91cab9e85a7ca8dd67782919f8a85c2ebb;hp=9b86dc6d1a7785279e1974ee773eb7ebabb67e2d;hpb=fabb47880497f35b385485d48b9b6a99db38cb4c;p=freeside.git diff --git a/FS/FS/otaker_Mixin.pm b/FS/FS/otaker_Mixin.pm index 9b86dc6d1..4aa47c38d 100644 --- a/FS/FS/otaker_Mixin.pm +++ b/FS/FS/otaker_Mixin.pm @@ -9,8 +9,15 @@ sub otaker { my $self = shift; if ( scalar(@_) ) { #set my $otaker = shift; - my $access_user = qsearchs('access_user', { 'username' => $otaker } ) - or croak "can't set otaker: $otaker not found!"; #confess? + my $access_user = qsearchs('access_user', { 'username' => $otaker } ); + if ( !$access_user && $otaker =~ /^(.+), (.+)$/ ) { #same as below.. + my($lastname, $firstname) = ($1, $2); + $otaker = lc($firstname.$lastname); + $access_user = qsearchs('access_user', { 'first' => $firstname, + 'last' => $lastname } ) + || qsearchs('access_user', { 'username' => $otaker } ); + } + croak "can't set otaker: $otaker not found!" unless $access_user; #confess? $self->usernum( $access_user->usernum ); $otaker; #not sure return is used anywhere, but just in case } else { #get @@ -45,14 +52,16 @@ sub _upgrade_otaker { eval { $record->otaker($record->otaker) }; if ( $@ ) { my $username = $record->otaker; + my($lastname, $firstname) = ( 'User', 'Legacy' ); if ( $username =~ /^(.+), (.+)$/ ) { - $username = lc($2.$1); + ($lastname, $firstname) = ($1, $2); + $username = lc($firstname.$lastname); } my $access_user = new FS::access_user { 'username' => $username, '_password' => 'CHANGEME', - 'first' => 'Legacy', - 'last' => 'User', + 'first' => $firstname, + 'last' => $lastname, 'disabled' => 'Y', }; my $error = $access_user->insert;