Index: trunk/core/kernel/utility/formatters/password_formatter.php =================================================================== diff -u -N --- trunk/core/kernel/utility/formatters/password_formatter.php (revision 8842) +++ trunk/core/kernel/utility/formatters/password_formatter.php (revision 0) @@ -1,118 +0,0 @@ - $field_name, 'formatter' => 'kPasswordFormatter'); - if (isset($field_options['encryption_method'])) { - $options['encryption_method'] = $field_options['encryption_method']; - } - if (isset($field_options['salt'])) { - $options['salt'] = $field_options['salt']; - } - if (isset($field_options['required'])) { - $options['required'] = $field_options['required']; - } - $add_fields[ $field_options['verify_field'] ] = $options; - - $add_fields[$field_name.'_plain'] = Array('type'=>'string', 'error_field'=>$field_name); - $add_fields[ $field_options['verify_field'].'_plain' ] = Array('type'=>'string', 'error_field'=>$field_options['verify_field'] ); - - $add_fields = array_merge_recursive2($add_fields, $object->VirtualFields); - $object->setVirtualFields($add_fields); - } - } - - function Format($value, $field_name, &$object, $format=null) - { - return $value; - } - - /** - * Performs password & verify password field validation - * - * @param mixed $value - * @param string $field_name - * @param kDBItem $object - * @return string - */ - function Parse($value, $field_name, &$object) - { - $options = $object->GetFieldOptions($field_name); - - $fields = Array('master_field','verify_field'); - $fields_set = true; - $flip_count = 0; - while($flip_count < 2) - { - if( getArrayValue($options,$fields[0]) ) - { - $object->SetDBField($field_name.'_plain', $value); - if( !getArrayValue($object->Fields[ $options[ $fields[0] ] ], $fields[1].'_set') ) - { - $object->Fields[ $options[ $fields[0] ] ][$fields[1].'_set'] = true; - } - - $password_field = $options[ $fields[0] ]; - $verify_field = $field_name; - } - $fields = array_reverse($fields); - $flip_count++; - } - - $salt = isset($object->Fields[$password_field]['salt']) ? $object->Fields[$password_field]['salt'] : ''; - if( getArrayValue($object->Fields[$password_field], 'verify_field_set') && getArrayValue($object->Fields[$verify_field], 'master_field_set') ) - { - $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('', $salt) ) - { - if ($options['encryption_method'] == 'plain') return $value; - return $this->EncryptPassword($value); - } - else - { - $object->Fields[$password_field.'_plain']['required'] = true; - $object->Fields[$verify_field.'_plain']['required'] = true; - return null; - } - } - - $min_length = $this->Application->ConfigValue('Min_Password'); - if (strlen($new_password) >= $min_length) { - if ($new_password != $verify_password) { - $object->SetError($password_field, 'passwords_do_not_match', 'lu_passwords_do_not_match'); - $object->SetError($verify_field, 'passwords_do_not_match', 'lu_passwords_do_not_match'); - } - } - else { - $error_msg = '+'.sprintf($this->Application->Phrase('lu_passwords_too_short'), $min_length); // + -> not phrase - $object->SetError($password_field, 'passwords_min_length', $error_msg); - $object->SetError($verify_field, 'passwords_min_length', $error_msg); - } - } - if($value == '') return $object->GetDBField($field_name); - - if ($options['encryption_method'] == 'plain') return $value; - return $this->EncryptPassword($value, $salt); - } - - function EncryptPassword($value, $salt=null) - { - 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