Index: branches/unlabeled/unlabeled-1.2.8/core/kernel/utility/formatters/password_formatter.php =================================================================== diff -u -r6435 -r6918 --- branches/unlabeled/unlabeled-1.2.8/core/kernel/utility/formatters/password_formatter.php (.../password_formatter.php) (revision 6435) +++ branches/unlabeled/unlabeled-1.2.8/core/kernel/utility/formatters/password_formatter.php (.../password_formatter.php) (revision 6918) @@ -11,6 +11,9 @@ { $add_fields = Array(); $options = Array('master_field' => $field_name, 'formatter'=>'kPasswordFormatter'); + if (isset($field_options['encryption_method'])) { + $options['encryption_method'] = $field_options['encryption_method']; + } $add_fields[ $field_options['verify_field'] ] = $options; $add_fields[$field_name.'_plain'] = Array('type'=>'string', 'error_field'=>$field_name); @@ -52,12 +55,13 @@ if( getArrayValue($object->Fields[$password_field], 'verify_field_set') && getArrayValue($object->Fields[$verify_field], 'master_field_set') ) { + $salt = isset($object->Fields[$password_field]['salt']) ? $object->Fields[$password_field]['salt'] : ''; $new_password = $object->GetDBField($password_field.'_plain'); $verify_password = $object->GetDBField($verify_field.'_plain'); if($new_password == '' && $verify_password == '') { - if( $object->GetDBField($password_field) != $this->EncryptPassword('') ) + if( $object->GetDBField($password_field) != $this->EncryptPassword('', $salt) ) { if ($options['encryption_method'] == 'plain') return $value; return $this->EncryptPassword($value); @@ -90,12 +94,15 @@ if($value == '') return $object->GetDBField($field_name); if ($options['encryption_method'] == 'plain') return $value; - return $this->EncryptPassword($value); + return $this->EncryptPassword($value, $salt); } function EncryptPassword($value, $salt=null) { - if (!isset($salt)) return md5($value); + if (!isset($salt) || !$salt) { + // if empty salt, assume, that it's not passed at all + return md5($value); + } return md5(md5($value).$salt); } } \ No newline at end of file