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