diff options
author | Mark Wells <mark@freeside.biz> | 2012-03-13 13:35:22 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2012-03-13 13:35:22 -0700 |
commit | da590709ee5f3e6a661950fcfce39dbbf9d6add4 (patch) | |
tree | adb857c098d0d9f14939e462881cf2374dadd015 /FS | |
parent | fdd00d4549faaa9de8952402f77fa86d0b8b22ee (diff) |
fix selfservice password change with ldap encoding, #16810
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/ClientAPI/MyAccount.pm | 4 | ||||
-rw-r--r-- | FS/FS/svc_acct.pm | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 7d177f9fe..acd0c6e85 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -2485,7 +2485,7 @@ sub myaccount_passwd { unless $svc_acct->check_password($p->{'old_password'}); } - $svc_acct->_password($p->{'new_password'}); + $svc_acct->set_password($p->{'new_password'}); my $error = $svc_acct->replace(); my($label, $value) = $svc_acct->cust_svc->label; @@ -2626,7 +2626,7 @@ sub process_reset_passwd { my $svc_acct = qsearchs('svc_acct', { 'svcnum' => $svcnum } ) or return { 'error' => "Service not found" }; - $svc_acct->_password($p->{'new_password'}); + $svc_acct->set_password($p->{'new_password'}); my $error = $svc_acct->replace(); my($label, $value) = $svc_acct->cust_svc->label; diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index 139f92715..e67db43c6 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -2524,7 +2524,8 @@ sub check_password { if ( $self->_password_encoding eq 'ldap' ) { - my $auth = from_rfc2307 Authen::Passphrase $self->_password; + $password =~ s/^{PLAIN}/{CLEARTEXT}/; + my $auth = from_rfc2307 Authen::Passphrase $password; return $auth->match($check_password); } elsif ( $self->_password_encoding eq 'crypt' ) { |