summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-11-08 14:56:11 -0800
committerIvan Kohler <ivan@freeside.biz>2013-11-08 14:56:11 -0800
commit6d4ba594dc521500f3ea254df110a111472a1750 (patch)
tree154f885995a703336baf0ded2791584ae3fc4b5a
parent17d4ef635337a5ac7f5755fac01b19668c56f992 (diff)
fix error return changing password over passwordmax in self-service, RT#24727
-rw-r--r--FS/FS/ClientAPI/MyAccount.pm13
1 files changed, 8 insertions, 5 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm
index 09b041d11..c5a831652 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -2814,13 +2814,16 @@ sub myaccount_passwd {
} )
or return { 'error' => "Service not found" };
- if ( exists($p->{'old_password'}) ) {
- return { 'error' => "Incorrect password." }
- unless $svc_acct->check_password($p->{'old_password'});
- }
+ my $error = '';
+
+ my $conf = new FS::Conf;
+ $error = 'Password too short.'
+ if length($p->{'new_password'}) < ($conf->config('passwordmin') || 6);
+ $error = 'Password too long.'
+ if length($p->{'new_password'}) > ($conf->config('passwordmax') || 8);
$svc_acct->set_password($p->{'new_password'});
- my $error = $svc_acct->replace();
+ $error ||= $svc_acct->replace();
my($label, $value) = $svc_acct->cust_svc->label;