samvera / hyrax

Hyrax is a Ruby on Rails Engine built by the Samvera community. Hyrax provides a foundation for creating many different digital repository applications.
http://hyrax.samvera.org/
Apache License 2.0
184 stars 124 forks source link

maximize flexibility of what can happen when an item in a workflow is edited #550

Closed vantuyls closed 7 years ago

vantuyls commented 7 years ago

Descriptive summary

Workflows (and their configurations) should have flexibility to define editability for all roles related of an item and at all steps in the workflow.

Rationale

Use cases for flexible workflow configs:

Expected behavior

Workflows in Hyrax will have a wide range of possible use cases and this requires that when one is defining a workflow, one has the flexibility to define, fairly specifically:

Related work

related issues (that initiated the discussion for this issue) include: https://github.com/projecthydra/sufia/issues/3134 https://github.com/projecthydra-labs/hyrax/issues/172

@mjgiarlo @jeremyf @scholarworks @hannahfrost @escowles @tpendragon @jcoyne @randalldfloyd

vantuyls commented 7 years ago

I've tried to capture all the things we talked about this morning - let me know (or add/edit) if you see that i missed something.

revgum commented 7 years ago

I want to leave an open question that relates to workflow flexibility. We'd like to publish a new work to Hyrax, in an active state of the workflow tied to its admin set. When this work is updated in the future, will it be capable of being set to any state in the workflow that it is currently on? (Assuming that we are able to publish a new work to Hyrax bypassing the workflow and setting the state directly to 'active').

The use case here is for data migration from some other system (DSpace, possibly Oregon Digital) and having the ability to publish a new work, but still have the fully functional workflow after the work was published.

mjgiarlo commented 7 years ago

Works are capable of being set to any state that the current state can transition to, at any point assuming the current user has proper workflow responsibility. Right, @jcoyne @jeremyf?

jeremyf commented 7 years ago

For each state of a workflow there may exist actions that can transition the work to a new state. For each of those actions (and the current workflow state) the user must have permission (either at the Entity or Workflow level) to perform the action.

jeremyf commented 7 years ago

I believe an LDCX session should very much be a workflow conversation; What examples are we trying to model. Create the JSON to reflect those examples.

mjgiarlo commented 7 years ago

Thanks, @jeremyf.

jcoyne commented 7 years ago

@vantuyls I believe we already have these capabilities in the workflow engine. You just need to write a custom workflow template with these instructions encoded, right?

vantuyls commented 7 years ago

@revgum seems like we sorted out the workflow state issue locally, right? anything else on that?

@jcoyne i think one of the bullet points in the issue isn't addressed by workflow, namely: disallowing edit access to an item once the user has uploaded it.

jcoyne commented 7 years ago

@vantuyls that is addressed in workflow by the RevokeEditFromDepositor action. https://github.com/samvera/hyrax/blob/master/lib/generators/hyrax/templates/mediated_deposit_workflow.json.erb#L51

vantuyls commented 7 years ago

hrm. didn't know that existed. I'll point @luisgreg99 at that spot.

vantuyls commented 7 years ago

possible that this is all resolved or had already been covered by work done on workflows. thoughts anyone? can we close this?

mjgiarlo commented 7 years ago

@vantuyls Agree that this can be closed. Thanks!