From e6f91471ecb740a032d03e8a362991a6687c0ec8 Mon Sep 17 00:00:00 2001 From: alec Date: Thu, 29 Apr 2010 07:13:26 +0000 Subject: - Use mail_domain value for domain variables when there is no domain in username: sql and ldap drivers (#1486694) - Created package.xml git-svn-id: https://svn.roundcube.net/trunk@3575 208e9e7b-5314-0410-a742-e7e81cd9613c --- plugins/password/drivers/ldap.php | 18 ++++++++++-------- plugins/password/drivers/sql.php | 9 +++------ 2 files changed, 13 insertions(+), 14 deletions(-) (limited to 'plugins/password/drivers') diff --git a/plugins/password/drivers/ldap.php b/plugins/password/drivers/ldap.php index 0557f3e54..a8aba0f74 100644 --- a/plugins/password/drivers/ldap.php +++ b/plugins/password/drivers/ldap.php @@ -133,14 +133,16 @@ function search_userdn($rcmail) */ function substitute_vars($str) { - $str = str_replace('%login', $_SESSION['username'], $str); - - $parts = explode('@', $_SESSION['username']); - if (count($parts) == 2) - { - $str = str_replace('%name', $parts[0], $str); - $str = str_replace('%domain', $parts[1], $str); - } + $str = str_replace(array( + '%login', + '%name', + '%domain', + ), array( + $_SESSION['username'], + password::username_local(), + password::username_domain(), + ), $str + ); return $str; } diff --git a/plugins/password/drivers/sql.php b/plugins/password/drivers/sql.php index 7e4907906..cb837edce 100644 --- a/plugins/password/drivers/sql.php +++ b/plugins/password/drivers/sql.php @@ -105,12 +105,9 @@ function password_save($curpass, $passwd) $sql = str_replace('%q', $db->quote($hash_curpass, 'text'), $sql); } - $user_info = explode('@', $_SESSION['username']); - if (count($user_info) >= 2) { - $sql = str_replace('%l', $db->quote($user_info[0], 'text'), $sql); - $sql = str_replace('%d', $db->quote($user_info[1], 'text'), $sql); - } - + // at least we should always have the local part + $sql = str_replace('%l', $db->quote(password::username_local(), 'text'), $sql); + $sql = str_replace('%d', $db->quote(password::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('%p', $db->quote($passwd,'text'), $sql); -- cgit v1.2.3