29 require_once
"Auth/Container.php";
33 require_once
"PEAR.php";
160 foreach ($options as
$name => $value) {
161 $this->_options[
$name] = $value;
164 if (!empty($this->_options[
'_features'])) {
165 $this->_features = $this->_options[
'_features'];
166 unset($this->_options[
'_features']);
191 $soapClient =
new SoapClient($this->_options[
"wsdl"], $this->_options);
195 foreach ($this->_features as $fieldName => $fieldValue) {
196 $params[$fieldName] = $fieldValue;
199 $params[$this->_options[
'usernamefield']] = $username;
203 $this->soapResponse = $soapClient->__soapCall($this->_options[
'method'],
$params);
205 if ($this->_options[
'matchpasswords']) {
207 if (
$password == $this->soapResponse[$this->_options[
'passwordfield']]) {
215 }
catch (SoapFault $e) {
216 return PEAR::raiseError(
"Error retrieving authentication data. Received SOAP Fault: ".$e->faultstring, $e->faultcode);
231 if ( ( is_null($this->_options[
'wsdl'])
232 && is_null($this->_options[
'location'])
233 && is_null($this->_options[
'uri']))
234 || ( is_null($this->_options[
'wsdl'])
235 && ( is_null($this->_options[
'location'])
236 || is_null($this->_options[
'uri'])))) {
237 return PEAR::raiseError(
'Either a WSDL file or a location/uri pair must be specified.');
239 if (is_null($this->_options[
'method'])) {
240 return PEAR::raiseError(
'A method to call on the soap service must be specified.');
256 $this->_options[
'wsdl'] = null;
257 $this->_options[
'location'] = null;
258 $this->_options[
'uri'] = null;
259 $this->_options[
'method'] = null;
260 $this->_options[
'usernamefield'] =
'username';
261 $this->_options[
'passwordfield'] =
'password';
262 $this->_options[
'matchpasswords'] =
true;