| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- /**
- * Hestia Control Panel Password Driver
- *
- * @version 1.0
- * @author HestiaCP <info@hestiacp.com>
- */
- class rcube_hestia_password {
- public function save($curpass, $passwd) {
- $rcmail = rcmail::get_instance();
- $hestia_host = $rcmail->config->get("password_hestia_host");
- if (empty($hestia_host)) {
- $hestia_host = "localhost";
- }
- $hestia_port = $rcmail->config->get("password_hestia_port");
- if (empty($hestia_port)) {
- $hestia_port = "8083";
- }
- $postvars = [
- "email" => $_SESSION["username"],
- "password" => $curpass,
- "new" => $passwd,
- ];
- $url = "https://{$hestia_host}:{$hestia_port}/reset/mail/";
- $ch = curl_init();
- if (
- false ===
- curl_setopt_array($ch, [
- CURLOPT_URL => $url,
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_HEADER => true,
- CURLOPT_POST => true,
- CURLOPT_POSTFIELDS => http_build_query($postvars),
- CURLOPT_USERAGENT => "Hestia Control Panel Password Driver",
- CURLOPT_SSL_VERIFYPEER => false,
- CURLOPT_SSL_VERIFYHOST => false,
- ])
- ) {
- // should never happen
- throw new Exception("curl_setopt_array() failed: " . curl_error($ch));
- }
- $result = curl_exec($ch);
- if (curl_errno($ch) !== CURLE_OK) {
- throw new Exception("curl_exec() failed: " . curl_error($ch));
- }
- curl_close($ch);
- if (strpos($result, "ok") && !strpos($result, "error")) {
- return PASSWORD_SUCCESS;
- } else {
- return PASSWORD_ERROR;
- }
- }
- }
|