summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-11-19 21:56:44 -0800
committerIvan Kohler <ivan@freeside.biz>2013-11-19 21:56:44 -0800
commitc9c9577203f43da9b851132c9c120bdf3de1fa47 (patch)
treecd54f0c478f6a551e77a70547850c0be4ed5e911
parentd0166fb1f52865916575ac6aa0eb043d792fe18b (diff)
prohibit self-service changing of suspended services passwords, RT#26140
-rw-r--r--FS/FS/ClientAPI/passwd.pm5
1 files changed, 5 insertions, 0 deletions
diff --git a/FS/FS/ClientAPI/passwd.pm b/FS/FS/ClientAPI/passwd.pm
index b22d7617e..8001e4f2d 100644
--- a/FS/FS/ClientAPI/passwd.pm
+++ b/FS/FS/ClientAPI/passwd.pm
@@ -23,6 +23,11 @@ sub passwd {
'domsvc' => $svc_domain->svcnum, }
);
return { error => 'User not found.' } unless $svc_acct;
+
+ my $cust_pkg = $svc_acct->cust_svc->cust_pkg;
+ return { error => "Can't change password for a suspended service" }
+ if $cust_pkg && $cust_pkg->status eq 'suspended';
+
return { error => 'Incorrect password.' }
unless $svc_acct->check_password($old_password);