diff options
author | ivan <ivan> | 2003-10-07 02:27:11 +0000 |
---|---|---|
committer | ivan <ivan> | 2003-10-07 02:27:11 +0000 |
commit | 449875d3a1e67ab4d2f8ee1c5d57309ffc18c6ad (patch) | |
tree | aecf82706df3dc678f4ffa732560151bb4519a05 | |
parent | e4cb834b6ae70167fd95b2c2048d6c2082a07aed (diff) |
add suspension / unsuspension export to communigate
-rw-r--r-- | FS/FS/part_export/communigate_pro.pm | 45 |
1 files changed, 31 insertions, 14 deletions
diff --git a/FS/FS/part_export/communigate_pro.pm b/FS/FS/part_export/communigate_pro.pm index ae20e2423..35c7fbf41 100644 --- a/FS/FS/part_export/communigate_pro.pm +++ b/FS/FS/part_export/communigate_pro.pm @@ -57,16 +57,27 @@ sub _export_delete { ); } -#sub _export_suspend { -#} +sub _export_suspend { + my( $self, $svc_acct ) = (shift, shift); + $self->communigate_pro_queue( $svc_acct->svcnum, 'UpdateAccountSettings', + 'accountName' => $svc_acct->email, + 'AccessModes' => 'Mail', + ); +} -#sub _export_unsuspend { -#} +sub _export_unsuspend { + my( $self, $svc_acct ) = (shift, shift); + $self->communigate_pro_queue( $svc_acct->svcnum, 'UpdateAccountSettings', + 'accountName' => $svc_acct->email, + 'AccessModes' => $self->option('AccessModes'), + ); +} sub communigate_pro_queue { my( $self, $svcnum, $method ) = (shift, shift, shift); - my $sub = $method eq 'CreateAccount' - ? 'CreateAccount' + my @kludge_methods = qw(CreateAccount UpdateAccountSettings); + my $sub = grep { $method eq $_ } @kludge_methods + ? $method : 'communigate_pro_command'; my $queue = new FS::queue { 'svcnum' => $svcnum, @@ -84,24 +95,30 @@ sub communigate_pro_queue { } sub CreateAccount { - my( $machine, $port, $login, $password, $method, @args ) = @_; - - my %args = @args; + my( $machine, $port, $login, $password, $method, %args ) = @_; my $accountName = delete $args{'accountName'}; my $accountType = delete $args{'accountType'}; my $externalFlag = delete $args{'externalFlag'}; $args{'AccessModes'} = [ split(' ', $args{'AccessModes'}) ]; - @args = ( accountName => $accountName, - accountType => $accountType, - settings => \%args, - ); - #externalFlag => $externalFlag, + my @args = ( accountName => $accountName, + accountType => $accountType, + settings => \%args, + ); + #externalFlag => $externalFlag, push @args, externalFlag => $externalFlag if $externalFlag; communigate_pro_command( $machine, $port, $login, $password, $method, @args ); } +sub UpdateAccountSettings { + my( $machine, $port, $login, $password, $method, %args ) = @_; + my $accountName = delete $args{'accountName'}; + $args{'AccessModes'} = [ split(' ', $args{'AccessModes'}) ]; + @args = ( $accountName, \%args ); + communigate_pro_command( $machine, $port, $login, $password, $method, @args ); +} + sub communigate_pro_command { #subroutine, not method my( $machine, $port, $login, $password, $method, @args ) = @_; |