29 require_once
"Auth/Container.php";
33 require_once
"PEAR.php";
37 require_once
'SOAP/Client.php';
148 $this->_options = $options;
149 if (!isset($this->_options[
'matchpasswords'])) {
150 $this->_options[
'matchpasswords'] =
true;
152 if (!empty($this->_options[
'_features'])) {
153 $this->_features = $this->_options[
'_features'];
154 unset($this->_options[
'_features']);
175 if (array_intersect($this->_requiredOptions, array_keys($this->_options)) != $this->_requiredOptions) {
179 $this->soapClient =
new SOAP_Client($this->_options[
'endpoint']);
180 $this->soapClient->setEncoding($this->_options[
'encoding']);
184 if (isset($this->_options[
'trace'])) {
185 $this->soapClient->__options[
'trace'] =
true;
189 if (isset($this->_options[
'timeout'])) {
190 $this->soapClient->__options[
'timeout'] = $this->_options[
'timeout'];
194 $usernameField =
new SOAP_Value($this->_options[
'usernamefield'],
'string', $username);
195 $passwordField =
new SOAP_Value($this->_options[
'passwordfield'],
'string',
$password);
196 $SOAPParams = array($usernameField, $passwordField);
199 foreach ($this->_features as $fieldName => $fieldValue) {
200 $SOAPParams[] =
new SOAP_Value($fieldName,
'string', $fieldValue);
204 $this->soapResponse = $this->soapClient->call(
205 $this->_options[
'method'],
207 array(
'namespace' => $this->_options[
'namespace'])
211 if ($this->_options[
'matchpasswords']) {
213 if (
$password == $this->soapResponse->{$this->_options[
'passwordfield']}) {