From aad102f73868ea83357856c3afe57617f411c83a Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Tue, 19 Jul 2016 14:29:38 -0400 Subject: [PATCH] Fixed #4033 Special characters in email mailbox password --- interface/lib/classes/tform_base.inc.php | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php index 1c5c6e0..f5e1793 100644 --- a/interface/lib/classes/tform_base.inc.php +++ b/interface/lib/classes/tform_base.inc.php @@ -901,6 +901,9 @@ case 'IDNTOUTF8': $returnval = $app->functions->idn_decode($returnval); break; + case 'TOLATIN1': + $returnval = mb_convert_encoding($returnval, 'ISO-8859-1', 'UTF-8'); + break; case 'TRIM': $returnval = trim($returnval); break; @@ -1263,6 +1266,10 @@ } elseif(isset($field['encryption']) && $field['encryption'] == 'CRYPT') { $record[$key] = $app->auth->crypt_password(stripslashes($record[$key])); $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; + } elseif(isset($field['encryption']) && $field['encryption'] == 'CRYPTMAIL') { + // The password for the mail system needs to be converted to latin1 before it is hashed. + $record[$key] = $app->auth->crypt_password(stripslashes($record[$key]),'ISO-8859-1'); + $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; } elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') { $tmp = $app->db->queryOneRecord("SELECT PASSWORD(?) as `crypted`", stripslashes($record[$key])); $record[$key] = $tmp['crypted']; @@ -1291,6 +1298,10 @@ } elseif(isset($field['encryption']) && $field['encryption'] == 'CRYPT') { $record[$key] = $app->auth->crypt_password(stripslashes($record[$key])); $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; + } elseif(isset($field['encryption']) && $field['encryption'] == 'CRYPTMAIL') { + // The password for the mail system needs to be converted to latin1 before it is hashed. + $record[$key] = $app->auth->crypt_password(stripslashes($record[$key]),'ISO-8859-1'); + $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; } elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') { $tmp = $app->db->queryOneRecord("SELECT PASSWORD(?) as `crypted`", stripslashes($record[$key])); $record[$key] = $tmp['crypted']; -- Gitblit v1.9.1