Drupal modules for browsing and managing Fedora-based digital repositories.
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.

95 lines
2.2 KiB

Merge branch 'ISLANDORA-278' into 6.x Conflicts: CollectionClass.inc CollectionPolicy.inc ConnectionHelper.inc ContentModel.inc MimeClass.inc ObjectHelper.inc SearchClass.inc SecurityClass.inc api/dublin_core.inc api/fedora_collection.inc api/fedora_export.inc api/fedora_item.inc api/fedora_utils.inc api/rels-ext.inc api/tagging.inc fedora_repository.module formClass.inc form_elements/css/copyright.css form_elements/css/filechooser.css form_elements/css/list.css form_elements/css/people.css form_elements/css/sticky.css form_elements/css/ui-lightness/jquery-ui-1.8.4.custom.css form_elements/includes/autocomplete.inc form_elements/includes/creative_commons.inc form_elements/includes/filechooser.inc form_elements/includes/people.inc form_elements/islandora_form_elements.module form_elements/js/copyright.js form_elements/js/filechooser.js form_elements/js/jcarousellite_1.0.1.js form_elements/js/jquery.breakly-1.0.js form_elements/js/jquery.easing.1.1.js form_elements/js/jquery.loadImages.1.0.1.js form_elements/js/jquery.loadImages.1.0.1.min.js form_elements/js/jquery.mousewheel.min.js form_elements/js/jquery.tag.editor-min.js form_elements/js/jquery.ui.core.js form_elements/js/jquery.ui.datepicker.js form_elements/js/jquery.ui.widget.js form_elements/js/otherselect.js form_elements/js/people_ahah.js form_elements/xml/gacs.xml form_elements/xml/languages.xml plugins/CollectionFormBuilder.inc plugins/CreateCollection.inc plugins/DemoFormBuilder.inc plugins/DocumentConverter.inc plugins/Exiftool.inc plugins/Ffmpeg.inc plugins/Flv.inc plugins/FlvFormBuilder.inc plugins/FormBuilder.inc plugins/ImageManipulation.inc plugins/ModsFormBuilder.inc plugins/PersonalCollectionClass.inc plugins/QtFormBuilder.php plugins/Refworks.inc plugins/ShowDemoStreamsInFieldSets.inc plugins/ShowStreamsInFieldSets.inc plugins/fedoraObject.inc plugins/herbarium.inc plugins/map_viewer.inc plugins/qt_viewer.inc plugins/slide_viewer.inc plugins/tagging_form.inc
14 years ago
<?php
// $Id$
/**
* @file
* Connection Helper Class
*/
module_load_include('inc', 'ConnectionHelper', '');
/**
* Connection Helper Class ??
*/
class ConnectionHelper {
/**
* Constructor
*/
function ConnectionHelper() {
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
}
/**
* fixURL ??
* @param type $url
* @param type $_name
* @param type $_pass
* @return string
*/
function _fixURL($url, $_name, $_pass) {
if (empty($url)) {
$url = variable_get('fedora_soap_url', 'http://localhost:8080/fedora/services/access?wsdl');
}
$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;
}
/**
* getSoapClient
* @global type $user
* @param type $url
* @param type $exceptions
* @return SoapClient
*/
function getSoapClient($url = NULL, $exceptions = TRUE) {
if (empty($url)) {
$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' => $exceptions,
));
} 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;
}
}