The ObjectHelper.inc file uses the deprecated API-A Lite API, i.e. localhost:8080/fedora/get/{pid}/{dsID}
This causes problems when XACML policies are in place that require access to certain datastreams based on fedoraRole. Basically, despite sending accurate credentials in the GET request, the fedoraRole is not recognized by fedora's AttributeFinderModule, and a user cannot access a particular datastream. The protected datastreams, however, are viewable in Fedora's admin console (while using the same credentials) since that uses the REST API.
Updated the curl call to use the new REST API.
The current breadcrumb calculation takes the first <dc:title> tag in the DC
datastream. The sorting order of the <dc:title> tags (in the case of more than
one tag) has empty tags appearing as the first items to be selected by the
query. This fix alters the query to change the sort order to make empty tags
the last items to be selected and thus, if a non-empty tag exists it will be
selected as the name of the breadcrumb.
There is also a problem with the breadcrumb query processing that will attempt
to process failed queries. The test for failure was incorrect and allowed some
failed queries to be treated as successes. This resulted in recursively
calling the breadcrumb processing an additional 10 times and failing each time.
This resulted in 10 '>' symbols instead of an error message. This fix tests
for falure and puts up an error message in the breadcrumb trail.
The breadcrumb calculation should be rewritten to be more robust.
FlowPlayer requires the "Content-Length" header to be returned in order to work properly,
but it wasn't getting returned in the header when a user was not logged in.
A slight change to the semantics, and opening up of the getDatastream API-M method via
XACML seems to work.
validPid to valid_pid
validDsid to valid_dsid
fixDsid to fix_dsid
One of the changes I've made has caused a minor bug in the islandora module. There are extra spaces in the collections URL.