summaryrefslogtreecommitdiff
path: root/plugins/password/drivers
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-04-29 07:13:26 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-04-29 07:13:26 +0000
commite6f91471ecb740a032d03e8a362991a6687c0ec8 (patch)
tree2534dc98f63929db1d71fad0a46493b14afc2d76 /plugins/password/drivers
parent576146d49c58f628874d6e83750cd3b38ac0bd58 (diff)
- 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
Diffstat (limited to 'plugins/password/drivers')
-rw-r--r--plugins/password/drivers/ldap.php18
-rw-r--r--plugins/password/drivers/sql.php9
2 files changed, 13 insertions, 14 deletions
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);