From bc54a75d31ea0e70e5854e4ddb9122d8feecdd74 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Tue, 19 Nov 2013 21:56:06 -0800 Subject: [PATCH] prohibit self-service changing of suspended packages, RT#26140 --- FS/FS/ClientAPI/MyAccount.pm | 5 +++++ fs_selfservice/FS-SelfService/cgi/provision_list.html | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 2aeecc1b2..241963f90 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -2303,6 +2303,11 @@ sub change_pkg { my $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $p->{pkgnum} } ) or return { 'error' => "unknown package $p->{pkgnum}" }; + #if someone does need self-service package change of suspended packages, + # figure out how to be more discriminating + return { error=>"Can't change a suspended package", pkgnum=>$cust_pkg->pkgnum} + if $cust_pkg->status eq 'suspended'; + my @newpkg; my $error = FS::cust_pkg::order( $custnum, [$p->{pkgpart}], diff --git a/fs_selfservice/FS-SelfService/cgi/provision_list.html b/fs_selfservice/FS-SelfService/cgi/provision_list.html index 2a3a8e909..24d6ff436 100644 --- a/fs_selfservice/FS-SelfService/cgi/provision_list.html +++ b/fs_selfservice/FS-SelfService/cgi/provision_list.html @@ -9,10 +9,14 @@ foreach my $pkg ( || scalar(@{$_->{cust_svc}}) } @cust_pkg ) { + my $susp = $pkg->{'susp'} || ''; - my @pkg_actions = ( [ 'customer_change_pkg' => 'change' ] ); - push @pkg_actions, [ 'process_suspend_pkg' => 'suspend' ] - if $self_suspend_reason and !$susp; + my @pkg_actions = (); + if ( ! $susp ) { + push @pkg_actions, [ 'customer_change_pkg' => 'change' ]; + push @pkg_actions, [ 'process_suspend_pkg' => 'suspend' ] + if $self_suspend_reason; + } my $bgcolor = $susp ? '"#ff9900"' : '"#8888ff"'; $OUT .= #''. -- 2.11.0