diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2011-11-13 12:02:18 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2011-11-13 12:02:18 +0000 |
| commit | b7c0ca0f6893f15bb8ebc5c57c522805afe3eac8 (patch) | |
| tree | 2f7e14461b6fc3e341a7feec5e801a82836c9c42 /plugins/password/drivers | |
| parent | dac9ae8bb9d8c4d6a0dab3443fb48e7272a190e0 (diff) | |
- Added option to use punycode or unicode for domain names (#1488103)
git-svn-id: https://svn.roundcube.net/trunk@5419 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'plugins/password/drivers')
| -rw-r--r-- | plugins/password/drivers/sql.php | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/plugins/password/drivers/sql.php b/plugins/password/drivers/sql.php index ad8ac5f6b..06a6b75ff 100644 --- a/plugins/password/drivers/sql.php +++ b/plugins/password/drivers/sql.php @@ -130,11 +130,28 @@ function password_save($curpass, $passwd) } } + $local_part = $rcmail->user->get_username('local'); + $domain_part = $rcmail->user->get_username('domain'); + $username = $_SESSION['username']; + $host = $_SESSION['imap_host']; + + // convert domains to/from punnycode + if ($rcmail->config->get('password_idn_ascii')) { + $domain_part = rcube_idn_to_ascii($domain_part); + $username = rcube_idn_to_ascii($username); + $host = rcube_idn_to_ascii($host); + } + else { + $domain_part = rcube_idn_to_utf8($domain_part); + $username = rcube_idn_to_utf8($username); + $host = rcube_idn_to_utf8($host); + } + // at least we should always have the local part - $sql = str_replace('%l', $db->quote($rcmail->user->get_username('local'), 'text'), $sql); - $sql = str_replace('%d', $db->quote($rcmail->user->get_username('domain'), 'text'), $sql); - $sql = str_replace('%u', $db->quote($_SESSION['username'],'text'), $sql); - $sql = str_replace('%h', $db->quote($_SESSION['imap_host'],'text'), $sql); + $sql = str_replace('%l', $db->quote($local_part, 'text'), $sql); + $sql = str_replace('%d', $db->quote($domain_part, 'text'), $sql); + $sql = str_replace('%u', $db->quote($username, 'text'), $sql); + $sql = str_replace('%h', $db->quote($host, 'text'), $sql); $res = $db->query($sql, $sql_vars); |
