You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.2 KiB
80 lines
2.2 KiB
14 years ago
|
<?php
|
||
|
// $Id$
|
||
|
|
||
|
/*
|
||
|
* Created on Jan 24, 2008
|
||
|
*
|
||
|
* To change the template for this generated file go to
|
||
|
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||
|
*/
|
||
|
|
||
|
module_load_include('inc', 'ConnectionHelper', '');
|
||
|
class ConnectionHelper {
|
||
|
function ConnectionHelper() {
|
||
|
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
|
||
|
}
|
||
|
|
||
|
function _fixURL($url, $_name, $_pass) {
|
||
|
if ($url == NULL) {
|
||
|
$url=variable_get('fedora_soap_url', 'http://localhost:8080/fedora/services/access?wsdl');
|
||
|
}
|
||
|
|
||
|
if ($_name == '' || $_pass == '') {
|
||
|
drupal_set_message(t('No credentials provided.'));
|
||
|
return NULL;
|
||
|
}
|
||
|
|
||
|
$creds = urlencode($_name) . ':'. urlencode($_pass);
|
||
|
|
||
|
if (strpos($url, 'http://') == 0) {
|
||
|
$new_url = 'http://'. $creds . '@'. substr($url, 7);
|
||
|
}
|
||
|
elseif (strpos($url, 'https://') == 0) {
|
||
|
$new_url = 'https://'. $creds . '@'. substr($url, 8);
|
||
|
}
|
||
|
else {
|
||
|
drupal_set_message(t('Invalid URL: !url', array('!url' => $url)));
|
||
|
return NULL;
|
||
|
}
|
||
|
|
||
|
return $new_url;
|
||
|
}
|
||
|
|
||
|
function getSoapClient($url = NULL) {
|
||
|
if ($url == NULL) {
|
||
|
$url=variable_get('fedora_soap_url', 'http://localhost:8080/fedora/services/access?wsdl');
|
||
|
}
|
||
|
global $user;
|
||
|
if ($user->uid == 0) {
|
||
|
//anonymous user. We will need an entry in the fedora users.xml file
|
||
|
//with the appropriate entry for a username of anonymous password of anonymous
|
||
|
try {
|
||
|
$client = new SoapClient($this->_fixURL($url, 'anonymous', 'anonymous'), array(
|
||
|
'login' => 'anonymous',
|
||
|
'password' => 'anonymous',
|
||
|
'exceptions' => TRUE,
|
||
|
));
|
||
|
}
|
||
|
catch (SoapFault $e) {
|
||
|
drupal_set_message(t("!e", array('!e' => $e->getMessage())));
|
||
|
return NULL;
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
try {
|
||
|
$client = new SoapClient($this->_fixURL($url, $user->name, $user->pass), array(
|
||
|
'login' => $user->name,
|
||
|
'password' => $user->pass,
|
||
|
'exceptions' => TRUE,
|
||
|
));
|
||
|
}
|
||
|
catch (SoapFault $e) {
|
||
|
drupal_set_message(t("!e", array('!e' => $e->getMessage())));
|
||
|
return NULL;
|
||
|
}
|
||
|
}
|
||
|
return $client;
|
||
|
}
|
||
|
}
|
||
|
|