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 types , but it is possbile partially/fully possible to update it from any value to any value for roles of Type 3, and is possible for roles of Type 2, but with the following limitations: 1. termProposer - can't update. 2. termReviewer can update only from unprocessed to only provisionallyProcessed or rejected. 3. termFinalizer - can update only from provisionallyProcessed to only finalized or rejected.. 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
|