diff --git a/includes/tuque_wrapper.inc b/includes/tuque_wrapper.inc index f075c402..6a38ad4a 100644 --- a/includes/tuque_wrapper.inc +++ b/includes/tuque_wrapper.inc @@ -322,7 +322,21 @@ class IslandoraFedoraObject extends FedoraObject { } } -class IslandoraRepositoryConnection extends RepositoryConnection {} +class IslandoraRepositoryConnection extends RepositoryConnection { + /** + * Constructor. + * + * Invokes parent, but additionally invokes an alter to allow modules to + * effect the configuration of the connection. + */ + public function __construct($url = NULL, $username = NULL, $password = NULL) { + if ($url === NULL) { + $url = static::FEDORA_URL; + } + parent::__construct($url, $username, $password); + drupal_alter('islandora_repository_connection_construction', $this); + } +} class IslandoraFedoraApi extends FedoraApi { diff --git a/islandora.api.php b/islandora.api.php index c88f0c20..a53b7e99 100644 --- a/islandora.api.php +++ b/islandora.api.php @@ -873,3 +873,16 @@ function hook_islandora_edit_datastream_registry_alter(&$edit_registry, $context 'url' => "islandora/custom_form/{$context['object']->id}/{$context['datastream']->id}" ); } + +/** + * Permit configuration of connection parameters. + * + * @param IslandoraRepositoryConnection $instance + * The connection being constructed. See the relevant Tuque ancestor classes + * for the particulars. + * + * @see https://github.com/Islandora/tuque/blob/1.x/HttpConnection.php + */ +function hook_islandora_repository_connection_construction_alter($instance) { + $instance->userAgent = "Tuque/cURL"; +}