X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_export%2Fshellcommands.pm;h=53b814e8b271afbee5c542207dec9a03255d5ddd;hb=30925e53c865e27db217a3d8cdaa529970cda4c6;hp=4f201cf9ceae68c8ecbec1e266f1acae8c9a101d;hpb=5fc8c5edf574ab024d4646914b6432d458e2ffbd;p=freeside.git diff --git a/FS/FS/part_export/shellcommands.pm b/FS/FS/part_export/shellcommands.pm index 4f201cf9c..53b814e8b 100644 --- a/FS/FS/part_export/shellcommands.pm +++ b/FS/FS/part_export/shellcommands.pm @@ -1,6 +1,6 @@ package FS::part_export::shellcommands; -use vars qw(@ISA %info @saltset); +use vars qw(@ISA %info) use Tie::IxHash; use String::ShellQuote; use FS::part_export; @@ -53,6 +53,10 @@ tie my %options, 'Tie::IxHash', 'unsuspend_stdin' => { label=>'Unsuspension command STDIN', default=>'', }, + 'crypt' => { label => 'Default password encryption', + type=>'select', options=>[qw(crypt md5)], + default => 'crypt', + }, ; %info = ( @@ -145,7 +149,7 @@ old_ for replace operations):
$username
$_password
$quoted_password
- unencrypted password quoted for the shell
- $crypt_password
- encrypted password
+ $crypt_password
- encrypted password (quoted for the shell)
$uid
$gid
$finger
- GECOS, already quoted for the shell (do not add additional quotes)
@@ -160,8 +164,6 @@ old_ for replace operations):
END
);
-@saltset = ( 'a'..'z' , 'A'..'Z' , '0'..'9' , '.' , '/' );
-
sub rebless { shift; }
sub _export_insert {
@@ -216,7 +218,7 @@ sub _export_command {
my $cust_pkg = $svc_acct->cust_svc->cust_pkg;
if ( $cust_pkg ) {
- $email = ( grep { $_ ne 'POST' } $cust_pkg->cust_main->invoicing_list )[0];
+ $email = ( grep { $_ !~ /^(POST|FAX)$/ } $cust_pkg->cust_main->invoicing_list )[0];
} else {
$email = '';
}
@@ -229,16 +231,8 @@ sub _export_command {
$quoted_password = shell_quote $_password;
$domain = $svc_acct->domain;
- #eventually should check a "password-encoding" field
- if ( length($svc_acct->_password) == 13
- || $svc_acct->_password =~ /^\$(1|2a?)\$/ ) {
- $crypt_password = shell_quote $svc_acct->_password;
- } else {
- $crypt_password = crypt(
- $svc_acct->_password,
- $saltset[int(rand(64))].$saltset[int(rand(64))]
- );
- }
+ $crypt_password =
+ shell_quote( $svc_acct->crypt_password( $self->option('crypt') ) );
@radius_groups = $svc_acct->radius_groups;
@@ -270,15 +264,8 @@ sub _export_replace {
$old_domain = $old->domain;
$new_domain = $new->domain;
- #eventuall should check a "password-encoding" field
- if ( length($new->_password) == 13
- || $new->_password =~ /^\$(1|2a?)\$/ ) {
- $new_crypt_password = shell_quote $new->_password;
- } else {
- $new_crypt_password =
- crypt( $new->_password, $saltset[int(rand(64))].$saltset[int(rand(64))]
- );
- }
+ $new_crypt_password =
+ shell_quote( $new->crypt_password( $self->option('crypt') ) );
@old_radius_groups = $old->radius_groups;
@new_radius_groups = $new->radius_groups;