GMOD / Apollo

Genome annotation editor with a Java Server backend and a Javascript client that runs in a web browser as a JBrowse plugin.
http://genomearchitect.readthedocs.io/
Other
128 stars 85 forks source link

export permissions as a separate flag #1499

Open nathandunn opened 7 years ago

nathandunn commented 7 years ago

The current model has the permissions:

Each of these has a rank.

However, "export" would be better suited to be configured as a separate option, since you may only want some curators to export and not others, or you may want folks who can read to export.

The argument would be that this would disuade folks from pre-publishing data accidentally or on purpose.

nathandunn commented 7 years ago

Areas to assess:

nathandunn commented 7 years ago
hexylena commented 7 years ago

Per comments in #1762, it might be nice to re-think of permissions here as distinct operations that can be granted to roles, rather than as a strictly linearly increasing set of permissions. This would be more appropriate for sites with different trust levels for different activities. I do still see write as a superset of read and not making so much sense without it.

A somewhat exhaustive list of permissions that should be granted to users or groups

Category Permissions
organism read (access name / metadata), write (change name/metadata), download (just show the button, obviously doesn't prevent the most determined user), export to chado, create a new organism.
organism-tracks (per track)? read (access to track data), write (add new tracks)
organism-annotation read (see existing annotations), write (create or update annotations)
groups admin (change name / membership / whether or not the member list is private or public) As you can see I think of apollo much more like github than like something I deploy in my lab for 5 people, I want it to be a service where users can self-organise, but maybe this is at odds with the goals of the project. Group names and usernames should be public (for sharing)
users only site-admins may create users, but ideally users should be able to register. Users may read/write/delete their own metadata (name/email)

Sites should be able to specify (in config) a baseline set of permissions that users are granted upon creation. Sites should also specify in config permissions that users should not be able to grant themselves, e.g. if an admin needs strict control over chado export they could ensure that organism-creation doesn't grant the user the ability to export to chado.

Sharing is incredibly important and currently hard to do (at least in a way which favours users self-organising.) The admin must manage all sharing (or make users admins of organisms, but in the past that carried extra permissions that I did not want to grant)

Note that there's no admin permission for organism. I think we could get rid of that concept of one person who can see everything. If this was implemented in conjunction with per-track read permissions this could provide a really nice ucsc-like experience (visualize your own data to public organisms).

(As per normal, just thinking out loud. Not going to have the time to implement this any time soon.)