* @author Michael Slusarz * @category Horde * @copyright 2000-2017 Horde LLC * @license http://www.horde.org/licenses/gpl GPL * @package Passwd */ class Passwd_Driver_Http extends Passwd_Driver { /** */ protected function _changePassword($user, $oldpass, $newpass) { // Add the required fields that most web-based forms would use. // Then add any fields that were passed in _params['fields']. $post_data = array_merge(array( $this->_params['username'] => $user, $this->_params['oldPasswd'] => $oldpass, $this->_params['passwd1'] => $newpass, $this->_params['passwd2'] => $newpass ), $this->_params['fields']); // Send the request try { $response = $GLOBALS['injector']->getInstance('Horde_Core_Factory_HttpClient')->create()->post($this->_params['url'], $post_data); } catch (Horde_Http_Exception $e) { throw new Passwd_Exception($e); } // Make sure we have a good response code if ($response->code != 200) { throw new Passwd_Exception(_("The requested website for changing user passwords could not be reached.")); } // We got *some* response from the server, so get the content and // let's see if we can't figure out if it was a success or not. $body = $response->getBody(); if (strpos($body, $this->_params['eval_results']['badPass'])) { throw new Passwd_Exception(_("Incorrect old password.")); } if (strpos($body, $this->_params['eval_results']['badUser'])) { throw new Passwd_Exception(_("The username could not be found.")); } if (!strpos($body, $this->_params['eval_results']['success'])) { throw new Passwd_Exception(_("Your password could not be changed.")); } } }