From da590709ee5f3e6a661950fcfce39dbbf9d6add4 Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Tue, 13 Mar 2012 13:35:22 -0700 Subject: [PATCH] fix selfservice password change with ldap encoding, #16810 --- FS/FS/ClientAPI/MyAccount.pm | 4 ++-- 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' ) { -- 2.11.0