This is a drupal module to implement a generic workflow around Fedora objects.
Clone or download
Pull request Compare This branch is 10 commits ahead, 1 commit behind discoverygarden:6.x.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
sparql
theme
README
collection_workflow_states_query.txt
fedora_object_functions.inc
islandora_workflow.batch.inc
islandora_workflow.collection.inc
islandora_workflow.forms.inc
islandora_workflow.inc
islandora_workflow.info
islandora_workflow.install
islandora_workflow.module
islandora_workflow.permissions.inc
islandora_workflow.rules.inc
islandora_workflow.rules_defaults.inc
islandora_workflow.sort.inc
islandora_workflow.test
islandora_workflow_user_doc.odt
normalize_assignees.inc
start_workflow.xml
workflow.xsd

README

This is a drupal module to implement a generic workflow around Fedora objects.

It uses an inline xml datastream and rdf to record the state of the workflow and notes associated with the workflow in workflow managed objects.
Acceptable state values: created, submitted, approved, published, rejected.

Wheather or not to treat collections as being workflow tracked during ingest is handled in a RESL-EXT relationship:
@todo put relationship here... FALSE and not set will initialy(at least) be functionaly equivalent.

Workflow is enforced through the use of XACML. All items that are in workflow are marked as inactive in Fedora.

For a user to see the 'My Islandora Work' link they need module permissions and some collection level permission set.
Collection level permissions for users and roles can be set at admin/settings/islandora_workflow_perms.

How do we recover if Drupal side modifications occurred when Fedora was inactive? Please don't do this, be mindful of fedora's state.

To be able to set user specific permissions without restriction you need to set authenticated user permissions to islandora_workflow_Submitter, islandora_workflow_Editor and islandora_workflow_Manager permissions.
Also, anyone who is to edit other users permissions will need the permission 'access administration pages'.
Do not set the islandora_workflow_Administrator permission for the authenticated user role.
If a user has two levels or more of permissions on the same collection the highest level takes precedence.

For a Drupal user to see the main workflow page they must both have appropriate permissions and have access set to a collection.

To start an object in the workflow call this function from islandora_workflow.inc: islandora_workflow_init_workflow($object_id)

PERMISSIONS
'islandora_workflow_Editor'
'islandora_workflow_Manager'
'islandora_workflow_Administrator'
'islandora_workflow_Submitter'

STATES
'created'
'submitted'
'approved'
'published'
'rejected'

-- INSTALLING WORKFLOW --
Note when installing workflow you need to remove a global fedora XACML policy that prevents regular users from modifying objects in an inactive state. This policy is located here:
$FEDORA_HOME/data/fedora-xacml-policies/repository-policies/default/deny-inactive-or-deleted-objects-or-datastreams-if-not-administrator.xml

-- ANONYMOUS ROLE --
If an anonymous user is a submitter they can only create items.
Anonymous editors/managers are not suported.
Anonymous users will not have access to the workflow page.