diff --git a/public_html/includes/class/class.LSformElement_password.php b/public_html/includes/class/class.LSformElement_password.php
index 8d8ba2ae..073761e3 100644
--- a/public_html/includes/class/class.LSformElement_password.php
+++ b/public_html/includes/class/class.LSformElement_password.php
@@ -60,14 +60,12 @@ class LSformElement_password extends LSformElement {
return true;
}
- if (!isset($this -> params['html_options']['isLoginPassword']) || $this -> params['html_options']['isLoginPassword']) {
- if ($this -> verifyPassword($return[$this -> name][0])) {
- LSdebug("Password : no change");
- unset($return[$this -> name]);
- $this -> form -> _notUpdate[$this -> name] == true;
- return true;
- }
- }
+ if ($this -> verifyPassword($return[$this -> name][0])) {
+ LSdebug("Password : no change");
+ unset($return[$this -> name]);
+ $this -> form -> _notUpdate[$this -> name] == true;
+ return true;
+ }
//Mail
if (isset($_POST['LSformElement_password_'.$this -> name.'_send'])) {
@@ -164,7 +162,18 @@ class LSformElement_password extends LSformElement {
if ($this -> attr_html -> attribute -> ldapObject -> isNew()) {
return false;
}
- return LSsession :: checkUserPwd($this -> attr_html -> attribute -> ldapObject,$pwd);
+ if ($this -> isLoginPassword()) {
+ return LSsession :: checkUserPwd($this -> attr_html -> attribute -> ldapObject,$pwd);
+ }
+ else {
+ $hash = $this -> attr_html -> attribute -> ldap -> encodePassword($pwd);
+ $find=false;
+ foreach($this -> attr_html -> attribute -> data as $val) {
+ if ($hash == $val)
+ $find=true;
+ }
+ return $find;
+ }
}
function send($params) {
@@ -258,6 +267,13 @@ class LSformElement_password extends LSformElement {
}
}
+ public function isLoginPassword() {
+ if (!isset($this -> params['html_options']['isLoginPassword']) || $this -> params['html_options']['isLoginPassword']) {
+ return true;
+ }
+ return false;
+ }
+
}
?>