summaryrefslogtreecommitdiff
path: root/plugins/password/drivers
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-04-27 12:27:59 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-04-27 12:27:59 +0000
commit5cc93795e62ac3d89a80c18d997b73c455b501f0 (patch)
tree74346a9c3ddc3a352483e44c2a039b4ed84aa731 /plugins/password/drivers
parentb4d58291cda5630d5b3e3ddf11d21ee4b300bdd4 (diff)
- cleanup + some improvements in hmail driver
git-svn-id: https://svn.roundcube.net/trunk@3568 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'plugins/password/drivers')
-rw-r--r--plugins/password/drivers/hmail.php27
-rw-r--r--plugins/password/drivers/sql.php52
2 files changed, 43 insertions, 36 deletions
diff --git a/plugins/password/drivers/hmail.php b/plugins/password/drivers/hmail.php
index 11f8440e2..764b744fe 100644
--- a/plugins/password/drivers/hmail.php
+++ b/plugins/password/drivers/hmail.php
@@ -3,7 +3,7 @@
/**
* hMailserver password driver
*
- * @version 1.0
+ * @version 1.1
* @author Roland 'rosali' Liebl <myroundcube@mail4us.net>
*
*/
@@ -12,26 +12,33 @@ function password_save($curpass, $passwd)
{
$rcmail = rcmail::get_instance();
+ if($curpass == '' || $passwd == '')
+ return PASSWORD_ERROR;
+
try {
- $obApp = new COM("hMailServer.Application");
+ $obApp = new COM('hMailServer.Application');
}
catch (Exception $e) {
- write_log('errors', 'Plugin password:' . $e->getMessage() . '. This problem is often caused by DCOM permissions not being set.');
+ write_log('errors', "Plugin password (hmail driver):" . $e->getMessage() . ". This problem is often caused by DCOM permissions not being set.");
return PASSWORD_ERROR;
}
$username = $rcmail->user->data['username'];
$temparr = explode('@', $username);
$domain = $temparr[1];
-
$obApp->Authenticate($username, $curpass);
- $obDomain = $obApp->Domains->ItemByName($domain);
- $obAccount = $obDomain->Accounts->ItemByAddress($username);
- $obAccount->Password = $passwd;
- $obAccount->Save();
-
- return PASSWORD_SUCCESS;
+ try {
+ $obDomain = $obApp->Domains->ItemByName($domain);
+ $obAccount = $obDomain->Accounts->ItemByAddress($username);
+ $obAccount->Password = $passwd;
+ $obAccount->Save();
+ return PASSWORD_SUCCESS;
+ }
+ catch(Exception $e) {
+ write_log('errors', "Plugin password (hmail driver):" . $e->getMessage());
+ return PASSWORD_ERROR;
+ }
}
?>
diff --git a/plugins/password/drivers/sql.php b/plugins/password/drivers/sql.php
index 6264c74a6..7e4907906 100644
--- a/plugins/password/drivers/sql.php
+++ b/plugins/password/drivers/sql.php
@@ -18,11 +18,11 @@ function password_save($curpass, $passwd)
$sql = 'SELECT update_passwd(%c, %u)';
if ($dsn = $rcmail->config->get('password_db_dsn')) {
- // #1486067: enable new_link option
- if (is_array($dsn) && empty($dsn['new_link']))
- $dsn['new_link'] = true;
- else if (!is_array($dsn) && !preg_match('/\?new_link=true/', $dsn))
- $dsn .= '?new_link=true';
+ // #1486067: enable new_link option
+ if (is_array($dsn) && empty($dsn['new_link']))
+ $dsn['new_link'] = true;
+ else if (!is_array($dsn) && !preg_match('/\?new_link=true/', $dsn))
+ $dsn .= '?new_link=true';
$db = new rcube_mdb2($dsn, '', FALSE);
$db->set_debug((bool)$rcmail->config->get('sql_debug'));
@@ -80,35 +80,35 @@ function password_save($curpass, $passwd)
// hashed passwords
if (preg_match('/%[n|q]/', $sql)) {
- if (!extension_loaded('hash')) {
- raise_error(array(
- 'code' => 600,
- 'type' => 'php',
- 'file' => __FILE__,
- 'message' => "Password plugin: 'hash' extension not loaded!"
- ), true, false);
- return PASSWORD_ERROR;
- }
+ if (!extension_loaded('hash')) {
+ raise_error(array(
+ 'code' => 600,
+ 'type' => 'php',
+ 'file' => __FILE__,
+ 'message' => "Password plugin: 'hash' extension not loaded!"
+ ), true, false);
+ return PASSWORD_ERROR;
+ }
- if (!($hash_algo = strtolower($rcmail->config->get('password_hash_algorithm'))))
+ if (!($hash_algo = strtolower($rcmail->config->get('password_hash_algorithm'))))
$hash_algo = 'sha1';
- $hash_passwd = hash($hash_algo, $passwd);
+ $hash_passwd = hash($hash_algo, $passwd);
$hash_curpass = hash($hash_algo, $curpass);
- if ($rcmail->config->get('password_hash_base64')) {
+ if ($rcmail->config->get('password_hash_base64')) {
$hash_passwd = base64_encode(pack('H*', $hash_passwd));
$hash_curpass = base64_encode(pack('H*', $hash_curpass));
}
- $sql = str_replace('%n', $db->quote($hash_passwd, 'text'), $sql);
- $sql = str_replace('%q', $db->quote($hash_curpass, 'text'), $sql);
+ $sql = str_replace('%n', $db->quote($hash_passwd, 'text'), $sql);
+ $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);
+ $sql = str_replace('%l', $db->quote($user_info[0], 'text'), $sql);
+ $sql = str_replace('%d', $db->quote($user_info[1], 'text'), $sql);
}
$sql = str_replace('%u', $db->quote($_SESSION['username'],'text'), $sql);
@@ -119,13 +119,13 @@ function password_save($curpass, $passwd)
$res = $db->query($sql);
if (!$db->is_error()) {
- if (strtolower(substr(trim($query),0,6))=='select') {
+ if (strtolower(substr(trim($query),0,6))=='select') {
if ($result = $db->fetch_array($res))
- return PASSWORD_SUCCESS;
- } else {
+ return PASSWORD_SUCCESS;
+ } else {
if ($db->affected_rows($res) == 1)
- return PASSWORD_SUCCESS; // This is the good case: 1 row updated
- }
+ return PASSWORD_SUCCESS; // This is the good case: 1 row updated
+ }
}
return PASSWORD_ERROR;