diff options
author | ivan <ivan> | 2004-02-23 08:12:47 +0000 |
---|---|---|
committer | ivan <ivan> | 2004-02-23 08:12:47 +0000 |
commit | b5fa7c0c1953139f1fbe0dabf3930871646016b8 (patch) | |
tree | 85577a8c157d845c9d11545d6566c27f069e7158 | |
parent | ed9253ea9ea732fa3c827b10bbadf0ff7784c0b2 (diff) |
implement fallback suspension code
-rw-r--r-- | FS/FS/part_export.pm | 10 | ||||
-rw-r--r-- | FS/FS/svc_Common.pm | 24 | ||||
-rw-r--r-- | FS/FS/svc_acct.pm | 28 |
3 files changed, 59 insertions, 3 deletions
diff --git a/FS/FS/part_export.pm b/FS/FS/part_export.pm index 0d91961..8423da2 100644 --- a/FS/FS/part_export.pm +++ b/FS/FS/part_export.pm @@ -468,18 +468,22 @@ sub _export_delete { return "_export_delete: unknown export type ". $self->exporttype; } -#fallbacks providing null operations +#call svcdb-specific fallbacks sub _export_suspend { my $self = shift; #warn "warning: _export_suspened unimplemented for". ref($self); - ''; + my $svc_x = shift; + my $new = $svc_x->clone_suspended; + $self->_export_replace( $new, $svc_x ); } sub _export_unsuspend { my $self = shift; #warn "warning: _export_unsuspend unimplemented for ". ref($self); - ''; + my $svc_x = shift; + my $old = $svc_x->clone_kludge_unsuspend; + $self->_export_replace( $svc_x, $old ); } =back diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index cadb997..a154f3f 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -430,6 +430,30 @@ methods. Called by the cancel method of FS::cust_pkg (see L<FS::cust_pkg>). sub cancel { ''; } +=item clone_suspended + +Constructor used by FS::part_export::_export_suspend fallback. Stub returning +same object for svc_ classes which don't implement a suspension fallback +(everything except svc_acct at the moment). Document better. + +=cut + +sub clone_suspended { + shift; +} + +=item clone_kludge_unsuspend + +Constructor used by FS::part_export::_export_unsuspend fallback. Stub returning +same object for svc_ classes which don't implement a suspension fallback +(everything except svc_acct at the moment). Document better. + +=cut + +sub clone_kludge_unsuspend { + shift; +} + =back =head1 BUGS diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index 9d8566d..32d8720 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -1061,6 +1061,34 @@ sub radius_groups { } } +=item clone_suspended + +Constructor used by FS::part_export::_export_suspend fallback. Document +better. + +=cut + +sub clone_suspended { + my $self = shift; + my %hash = $self->hash; + $hash{_password} = join('',map($pw_set[ int(rand $#pw_set) ], (0..7) ) ); + new FS::svc_acct \%hash; +} + +=item clone_kludge_unsuspend + +Constructor used by FS::part_export::_export_unsuspend fallback. Document +better. + +=cut + +sub clone_kludge_unsuspend { + my $self = shift; + my %hash = $self->hash; + $hash{_password} = ''; + new FS::svc_acct \%hash; +} + =back =head1 SUBROUTINES |