X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_export%2Fshellcommands.pm;h=1eb0d8367440ce1d25ddbf6ababca927cc6eb9ec;hp=db2e7aaf9e3c16d123134cf69140dfa3738c5172;hb=b0011320cc2c33233ee694c61903667d2d3d8e5b;hpb=193118008312797e8188145138c6875ba506ff33 diff --git a/FS/FS/part_export/shellcommands.pm b/FS/FS/part_export/shellcommands.pm index db2e7aaf9..1eb0d8367 100644 --- a/FS/FS/part_export/shellcommands.pm +++ b/FS/FS/part_export/shellcommands.pm @@ -59,9 +59,17 @@ sub _export_command { $finger = shell_quote $finger; $quoted_password = shell_quote $_password; $domain = $svc_acct->domain; - $crypt_password = ''; #surpress "used only once" warnings - $crypt_password = crypt( $svc_acct->_password, - $saltset[int(rand(64))].$saltset[int(rand(64))] ); + + #eventually should check a "password-encoding" field + if ( length($svc_acct->_password) == 13 + || $svc_acct->_password =~ /^\$(1|2a?)\$/ ) { + $crypt_password = $svc_acct->_password; + } else { + $crypt_password = crypt( + $svc_acct->_password, + $saltset[int(rand(64))].$saltset[int(rand(64))] + ); + } $self->shellcommands_queue( $svc_acct->svcnum, user => $self->option('user')||'root', @@ -86,9 +94,17 @@ sub _export_replace { $new_quoted_password = shell_quote $new__password; #new, better? $old_domain = $old->domain; $new_domain = $new->domain; - $new_crypt_password = ''; #surpress "used only once" warnings - $new_crypt_password = crypt( $new->_password, - $saltset[int(rand(64))].$saltset[int(rand(64))]); + + #eventuall should check a "password-encoding" field + if ( length($new->_password) == 13 + || $new->_password =~ /^\$(1|2a?)\$/ ) { + $new_crypt_password = $new->_password; + } else { + $new_crypt_password = + crypt( $new->_password, $saltset[int(rand(64))].$saltset[int(rand(64))] + ); + } + if ( $self->option('usermod_pwonly') ) { my $error = ''; if ( $old_username ne $new_username ) {