Description
Goal
Any logged in user should be able to edit functions when:
- the function is a user contributed functions, and
- if editing input/output, the function is not running
Details
- When the function is predefined function:
- Only function maintainers can edit them. Rights needed: [ wikilambda-edit-predefined ]
- When the function is user-contributed function:
- Edit inputs/Z8K1 or output/Z8K2:
- If the function is running: Only function maintainers can edit them. [ wikilambda-edit-user-function, wikilambda-edit-running-function & wikilambda-edit-running-function-definition ]
- Else: logged in user [ wikilambda-edit-user-function ]
- Edit tests/Z8K3 or implementations/Z8K4 (connect/disconnect):
- If the function is running:
- connect implementations: functioneers [ wikilambda-edit-user-function, wikilambda-edit-running-function, wikilambda-connect-implementation ]
- disconnect implementations: functioneers [ wikilambda-edit-user-function, wikilambda-edit-running-function, wikilambda-disconnect-implementation ]
- connect tests: functioneers [ wikilambda-edit-user-function, wikilambda-edit-running-function, wikilambda-connect-test ]
- disconnect tests: functioneers [ wikilambda-edit-user-function, wikilambda-edit-running-function, wikilambda-disconnect-test ]
- If the function is not running:
- connect implementations: functioneers [ wikilambda-edit-user-function, wikilambda-connect-implementation ]
- connect tests: functioneers [ wikilambda-edit-user-function, wikilambda-connect-test ]
- disconnect tests: functioneers [ wikilambda-edit-user-function, wikilambda-disconnect-test ]
- If the function is running:
- Any other edits:
- Any logged in user [ wikilambda-edit-user-function ]
- Edit inputs/Z8K1 or output/Z8K2:
Permissions involved:
- function maintainer: [ wikilambda-edit-predefined, wikilambda-edit-running-function-definition ]
- functioneer: [ wikilambda-edit-running-function, wikilambda-connect-*, wikilambda-disconnect-* ]
- logged in user: [ wikilambda-edit-user-function ]
To-Do:
- Create wikilambda-edit-running-function-definition right and assing it to functionmaintainer group
- Remove wikilambda-edit-builtin-function right (redundant, covered by wikilambda-edit-predefined)
- Remove wikilambda-edit-function right (redundant, covered by wikilambda-edit-predefined or wikilambda-edit-user-function)
- Remove wikilambda-edit-function-definition right (redundant, covered by wikilambda-edit-running-function-definition, which needs a special right, because it requires more privileges than edit-running-function + edit-function-definition )
- Set wikilambda-edit-predefined to true for the group functionmaintainer
- Set wikilambda-edit-running-function-definition to true for the group functionmaintainer
- Set wikilambda-edit-running-function to true for the group functioneer
- Set wikilambda-connect-* to true for the group functioneer
- Set wikilambda-disconnect-* to true for the group functioneer
- Set wikilambda-edit-function-definition to true for the group user
- Set wikilambda-edit-user-function to true for the group user
Completion checklist
- Before closing this task, review one by one the checklist available here: https://www.mediawiki.org/wiki/Abstract_Wikipedia_team/Definition_of_Done#Back-end_Task/Bug_completion_checklist