TermPortal app have a number of roles, that affect both client app and server app capabilities. Currently TermPortal have 6 roles, but basically they can be divided into 3 types.
|
Roles
| Write rights on |
---|
Term | Attribute |
create | update | delete | create | update | delete |
Type 1 | termSearch | No | No | No | No | No | No |
Type 2 | termProposer | Yes | Yes if 1 | Yes | Yes if 4 |
termReviewer | No | Yes if 2 | No | No | Yes if 5 |
termFinalizer | No | Yes if 3 | No | No | Yes if 6 |
Type 3 | termPM | Yes | Yes | Yes | Yes | Yes | Yes |
termPM_allClients | Yes | Yes | Yes | Yes | Yes | Yes |
Note that processStatus attribute has a special meaning and behaviour implemented, so that it is completely impossible to delete it for user having any role, but it is partially/fully possible to update it. See point 7 below for details. |
- TermProposer-user can update/delete some term only if that term was created by that user
- TermReviewer-user can update some term only if that term is Unprocessed
- TermFinalizer-user can update some term only if that term is ProvisionallyProcessed
- TermProposer-user can update/delete some attribute only if that attribute was created by that user and all term(s) on that attribute's level are Unprocessed, so:
- If it's a term-level attribute - that term should be Unprocessed
- If it's a language-level attribute - all terms for that language should be Unprocessed
- If it's a termEntry-level attribute - all terms for that termEntry should be Unprocessed
- TermReviewer-user can update/delete some attribute only if all term(s) on that attribute's level are Unprocessed, so it's same as in point 4 but with no 'was created by that user'-requirement
- TermFinalizer-user can update/delete some attribute only if all term(s) on that attribute's level are ProvisionallyProcessed, so it's same as in point 5 but just other status used
- The ability to change processStatus attribute is:
- Not available for roles of Type 1
- Partially available for roles of Type 2
- TermProposer-user - not available
- TermReviewer-user - available, but only from unprocessed to only provisionallyProcessed or rejected
- TermFinalizer-user - available, but only from provisionallyProcessed to only finalized or rejected
- Fully available for roles of Type 3
|