diff --git a/plugins/password/drivers/cpanel_webmail.php b/plugins/password/drivers/cpanel_webmail.php index 674ac870a..a34b6a1f8 100644 --- a/plugins/password/drivers/cpanel_webmail.php +++ b/plugins/password/drivers/cpanel_webmail.php @@ -7,7 +7,6 @@ * * This driver has been tested successfully with Digital Pacific hosting. * - * @version 4.0 * @author Maikel Linke * * Copyright (C) 2005-2016, The Roundcube Dev Team @@ -32,10 +31,11 @@ class rcube_cpanel_webmail_password * Changes the user's password. It is called by password.php. * See "Driver API" README and password.php for the interface details. * - * @param string $curpas current (old) password + * @param string $curpas current (old) password * @param string $newpass new requested password + * * @return mixed int code or assoc array with 'code' and 'message', see - * "Driver API" README and password.php + * "Driver API" README and password.php */ public function save($curpas, $newpass) { @@ -84,18 +84,17 @@ class rcube_cpanel_webmail_password } // $result should be `null` or `stdClass` object - $result = json_decode($response, !JSON_OBJECT_AS_ARRAY); + $result = json_decode($response); // The UAPI may return HTML instead of JSON on missing authentication - if (is_object($result) && $result->status === 1) { + if ($result && $result->status === 1) { return PASSWORD_SUCCESS; } - $errors = $result->errors; - if (is_array($errors) && count($errors) > 0) { + if ($result && is_array($result->errors) && count($result->errors) > 0) { return array( 'code' => PASSWORD_ERROR, - 'message' => $errors[0], + 'message' => $result->errors[0], ); } @@ -119,8 +118,7 @@ class rcube_cpanel_webmail_password * @param string $url the URL to post data to * @param array $postdata the data to post * - * @return string the body of the reply - * @throws Exception + * @return string|false The body of the reply, False on error */ private function curl_auth_post($userpwd, $url, $postdata) { @@ -142,7 +140,7 @@ class rcube_cpanel_webmail_password curl_close($ch); if ($result === false) { - throw new Exception("curl error: $error"); + rcube::raise_error("curl error: $error", true, false); } return $result;