Page MenuHomePhabricator

User rights: Logged in users can connect implementations/testers to non-running, user-provided functions
Open, Needs TriagePublic

Description

Description

NOTE: This still needs to be discussed and decided

Assumption: Every built-in function is a running function

Tester

Add the following rule before authorization-rules.yml:63

# Connect and disconnect tester from user-provided, not-running function
- path: '^Z2K2\.Z8K3\.[1-9]\d*(\..*)?$'
  type: Z8
  filter: [ ZObjectFilterIsNotRunnable ]  # alternatively [ ZObjectFilterIsRunnable, false ]
  operations:
    any:
      - wikilambda-edit-not-running-function

# Connect implementations from user-provided, not-running function
- path: '^Z2K2\.Z8K4\.[1-9]\d*(\..*)?$'
  type: Z8
  filter: [ ZObjectFilterIsNotRunnable ]  # alternatively [ ZObjectFilterIsRunnable, false ]
  operations:
    any:
      - wikilambda-edit-not-running-function

Additionally:

  • create the filter ZObjectFilterIsNotRunnable which should be simply the negation of ZObjectFilterIsRunnable (or add a boolean argument to ZObjectFilterIsRunnable instead)
  • create the right wikilambda-edit-not-running-function
  • assign the right wikilambda-edit-not-running-function to the group user

Completion checklist

Event Timeline

Connecting a first implementation to a function is what makes it "running"; it's the security-critical community-controlled step, and splitting out the right would only mean a more fine-grained right that we could give to Functioneers and no less-privileged users.

Adding testers to a non-running function, OTOH, could be an interesting model.