From 48e9c14ebded89d858c8be0333f77f77a81b0877 Mon Sep 17 00:00:00 2001 From: thomascube Date: Sat, 31 Mar 2012 12:25:48 +0000 Subject: Move plugins repository into roundcubemail root folder; svn:externals are not defined anymore --- plugins/password/drivers/domainfactory.php | 70 ++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 plugins/password/drivers/domainfactory.php (limited to 'plugins/password/drivers/domainfactory.php') diff --git a/plugins/password/drivers/domainfactory.php b/plugins/password/drivers/domainfactory.php new file mode 100644 index 000000000..7f6b8860e --- /dev/null +++ b/plugins/password/drivers/domainfactory.php @@ -0,0 +1,70 @@ + + * @link http://tillkruess.com/projects/roundcube/ + * + */ + +class rcube_domainfactory_password +{ + function save($curpass, $passwd) + { + $rcmail = rcmail::get_instance(); + + if (is_null($curpass)) { + $curpass = $rcmail->decrypt($_SESSION['password']); + } + + if ($ch = curl_init()) { + // initial login + curl_setopt_array($ch, array( + CURLOPT_RETURNTRANSFER => true, + CURLOPT_URL => 'https://ssl.df.eu/chmail.php', + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => array( + 'login' => $rcmail->user->get_username(), + 'pwd' => $curpass, + 'action' => 'change' + ) + )); + + if ($result = curl_exec($ch)) { + // login successful, get token! + $postfields = array( + 'pwd1' => $passwd, + 'pwd2' => $passwd, + 'action[update]' => 'Speichern' + ); + + preg_match_all('~~i', $result, $fields); + foreach ($fields[1] as $field_key => $field_name) { + $postfields[$field_name] = $fields[2][$field_key]; + } + + // change password + $ch = curl_copy_handle($ch); + curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); + if ($result = curl_exec($ch)) { + if (strpos($result, 'Einstellungen erfolgreich') !== false) { + return PASSWORD_SUCCESS; + } + } else { + return PASSWORD_CONNECT_ERROR; + } + } else { + return PASSWORD_CONNECT_ERROR; + } + } else { + return PASSWORD_CONNECT_ERROR; + } + + return PASSWORD_ERROR; + } +} -- cgit v1.2.3