diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2010-04-27 12:27:59 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2010-04-27 12:27:59 +0000 |
| commit | 5cc93795e62ac3d89a80c18d997b73c455b501f0 (patch) | |
| tree | 74346a9c3ddc3a352483e44c2a039b4ed84aa731 /plugins | |
| parent | b4d58291cda5630d5b3e3ddf11d21ee4b300bdd4 (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')
| -rw-r--r-- | plugins/password/drivers/hmail.php | 27 | ||||
| -rw-r--r-- | plugins/password/drivers/sql.php | 52 |
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; |
