X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_export%2Fshellcommands.pm;h=4e943605f07f8af5c8f7d8e39c13611cf1219686;hp=870d7f1ee4e759ee852b44a260d725f4395676b9;hb=cd5d6c049041ee198e38687e7dd0a63f3d21b2ef;hpb=cf6020a0c273d549d33f3e9999bd8b68d9b6d133 diff --git a/FS/FS/part_export/shellcommands.pm b/FS/FS/part_export/shellcommands.pm index 870d7f1ee..4e943605f 100644 --- a/FS/FS/part_export/shellcommands.pm +++ b/FS/FS/part_export/shellcommands.pm @@ -1,10 +1,12 @@ package FS::part_export::shellcommands; -use vars qw(@ISA); +use vars qw(@ISA @saltset); use FS::part_export; @ISA = qw(FS::part_export); +@saltset = ( 'a'..'z' , 'A'..'Z' , '0'..'9' , '.' , '/' ); + sub rebless { shift; } sub _export_insert { @@ -23,9 +25,11 @@ sub _export_command { my $stdin = $self->option($action."_stdin"); no strict 'refs'; ${$_} = $svc_acct->getfield($_) foreach $svc_acct->fields; + $crypt_password = crypt( $svc_acct->_password, + $saltset[int(rand(64))].$saltset[int(rand(64))] ); $self->shellcommands_queue( $svc_acct->svcnum, - user => $self->options('user')||'root', - host => $self->options('machine'), + user => $self->option('user')||'root', + host => $self->machine, command => eval(qq("$command")), stdin_string => eval(qq("$stdin")), ); @@ -38,9 +42,11 @@ sub _export_replace { no strict 'refs'; ${"old_$_"} = $old->getfield($_) foreach $old->fields; ${"new_$_"} = $new->getfield($_) foreach $new->fields; + $new_crypt_password = crypt( $svc_acct->_password, + $saltset[int(rand(64))].$saltset[int(rand(64))]); $self->shellcommands_queue( $new->svcnum, - user => $self->options('user')||'root', - host => $self->options('machine'), + user => $self->option('user')||'root', + host => $self->machine, command => eval(qq("$command")), stdin_string => eval(qq("$stdin")), );