How user-based permissions work in CATMAID
Author: Albert Cardona, 2012-November-12.
The basic concept is that a user owns the nodes and connectors created while signed in.
There are three user roles: Browse, Annotate and Admin
A browsing user can view everything, and edit nothing.
An admin user can view and edit everything.
An annotator user can view (and export) everything, and:
- Create new nodes and connectors, and therefore new skeletons.
- Create a new node as a child of an existing node owned by another user.
- Delete a node that the user owns.
- Add a text tag to a node owned by any user. Will trigger a notification to the user that owns the node.
- Remove a text tag that the user owns. Will trigger a notification if the node is owned by another user.
- Join a node (and its associated skeleton) into a node owned by any user. This is conceptually equivalent to adding a new node as a child of a node owned by another user.
- Split a skeleton if the node at which the split is made belongs to the user.
- Reroot a skeleton. Rerooting is a no-op: no data is altered; the topological orientation of the skeleton is a matter of convenience.
- Create a presynaptic_to or postsynaptic_to relationship on any node.
- Delete a presynaptic_to or postsynaptic_to relationship that the user owns.
- Create, delete and rename groups, neurons and skeletons owned by the user, which for an annotator user will always initially exist within the Staging group associated with the user in the Object Tree. With the exception that, if the skeleton has nodes owned by another user, that skeleton (and their parent neuron and groups) cannot be deleted by the user. An admin user may have moved skeletons, neurons and groups out of the user's Staging group, in which case the user still owns them.
- Move groups, neurons and skeletons in the Object Tree to groups, neurons and skeletons owned by the user.