LSformElement :: password : Added support of verify feature for non login password
authorBenjamin Renard <bn8@zionetrix.net>
Sun, 1 May 2011 14:44:32 +0000 (16:44 +0200)
committerBenjamin Renard <bn8@zionetrix.net>
Sun, 1 May 2011 14:44:32 +0000 (16:44 +0200)
public_html/includes/class/class.LSformElement_password.php

index 8d8ba2a..073761e 100644 (file)
@@ -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;
+  }
+
 }
   
 ?>