Page MenuHomePhabricator

Adjust and improve Wikifunctions user rights grants for General Availability
Closed, ResolvedPublic

Description

Description

This is an epic task to list all the changes we need to make on User Rights and Privileges for Wikifunctions General Availability:

  • Execution rights:
    • Alter production config so that all logged-in users can run functions: T349055
    • Add a specific right, granted to all logged-in users, to allow running unsaved code in the implementation edit page: T349057
  • Creation rights:
    • Alter production config so that all logged-in users can create functions: T349061
    • Alter production config so that all logged-in users can create implementations: T349061
    • Alter production config so that all logged-in users can create tests: T349061
    • Alter production config so that all logged-in users can create objects of non-restricted types: T349061
  • Editing rights:
    • Alter production config so that all logged-in users can edit function input labels: T349063
    • Alter production config so that all logged-in users can edit type key labels: T349063
    • Fix bug that prevents all logged-in users from being able to edit error type key labels: T348997
    • Alter production config so that all logged-in users can edit user-contributed function definitions if they are not running: T349080
    • Alter production config so that Functioneers can edit a user-contributed function definition if it's running: T349080
    • Alter production config so that Function maintainers can edit a built-in function: T349080
    • Correct production config so that Function maintainers can edit running implementations/testers connected to a builtin function: T349081
    • Alter production config so that all logged-in users can edit user-contributed and non-running tests and implementations: T349082
    • Alter production config so that all logged-in users can edit user-contributed objects of non-restricted types: T349082

Out of scope:

Future plans:

  • Creation rights: Alter production config so that Functioneers can create types: T349060
  • Consider maybe allowing logged in users to connect tests/implementations to user-provided, non-running functions: T349136

Completion checklist

Related Objects

StatusSubtypeAssignedTask
Resolvedgengh
ResolvedBUG REPORTgengh
Resolvedgengh
Resolvedgengh
Resolvedgengh
Resolvedgengh
Resolvedgengh
Resolvedgengh
Resolvedgengh
ResolvedJdforrester-WMF
ResolvedSecurityJdforrester-WMF
ResolvedJMeybohm
ResolvedJdforrester-WMF
Resolvedcmassaro
Resolvedcmassaro
ResolvedSecuritycmassaro
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
Resolvedcmassaro
ResolvedJMeybohm
ResolvedPRODUCTION ERRORJdforrester-WMF
Resolvedcmassaro
Resolvedcmassaro

Event Timeline

Most of these aren't about GA, but later milestones. T349061 plus T349055 is the GA target; the rest are not expected for months. Should we re-title this task?

  • T349055: agreed
  • T349057: any users that can go to the edit page will be able to run unsaved code. Do we wanna allow this? If not, we need to do this task to add some restrictions to this. There are more details in the task
  • T349060: Understood, will mark this for future
  • T349061: agreed
  • T349063: this is implied in Denny's writeup:

Furthermore, we are also considerably opening up editing rights. From now on, all logged in users can propose newedit Wikifunctions objects, i.e. create and maintain functions, tests, implementations and more, and edit unapproved ones, rather than just special users with the Functioneer status. [...] Functioneers will retain the right to connect and disconnect tests and implementations on most functions, which makes the function "live" so that people can use it.

  • T348997: I totally missed this one but this should be included in "all users can add multilingual data", along with key labels and argument labels
  • T349080: As detailed in the task, this is also implied in Denny's writeup,
  • T349081: This is a rights discrepancy that should be fixed
  • T349082: This is also implied in Denny's writeup.

Summing up:
I believe the only thing in my list that corresponds to pushing type creation and edition to the future is T349060.
We can also consider T348997 and T349081 as bugs, and not too important for GA release, but we should address them soon.
The rest are all necessary to accomplish what we are saying in our writeup, which is what I am understanding as our goal.

These is a summary of the changes we need to do in each repo:

wmf-config changes:

  • T349055 wikilambda-execute, true, *
  • T349061 wikilambda-create-function, true, user
  • T349061 wikilambda-create-implementation, true, user
  • T349061 wikilambda-create-tester, true, user
  • T349061 wikilambda-create, true, user
  • T349063 wikilambda-edit-argument-label, true, user
  • T349063 wikilambda-edit-key, true, user
  • T349080 wikilambda-edit-user-function, true, user
  • T349080 remove wikilambda-edit-function
  • T349082 wikilambda-edit, true, user
  • T349082 wikilambda-implementation, true, user
  • T349082 wikilambda-tester, true, user

Wikilambda changes:

  • T349055 remove restriction in front-end for anonymous users
  • T349057 figure out how to add particular right for running unsaved code
  • T348997 add new right: wikilambda-edit-error-type-label, true, user
  • T349080 set wikilambda-edit-function-definition to [true, user]
  • T349080 remove wikilambda-edit-function
  • T349081 add rule for editing active implementation
  • T349082 wikilambda-implementation, add to authorizationRules.yml
  • T349082 wikilambda-tester, add to authorizationRules.yml

As discussed today, @Jdforrester-WMF will address the changes on wmf-config, while I will address the Wikilambda patches.

Change 966570 had a related patch set uploaded (by Jforrester; author: Jforrester):

[operations/mediawiki-config@master] [wikifunctions] Alter site to General Availability

https://gerrit.wikimedia.org/r/966570

Jdforrester-WMF changed the task status from Open to In Progress.Oct 30 2023, 8:19 PM
Jdforrester-WMF assigned this task to gengh.
Jdforrester-WMF updated the task description. (Show Details)
Jdforrester-WMF moved this task from Backlog to To deploy on the Abstract Wikipedia team board.

Change 966570 merged by jenkins-bot:

[operations/mediawiki-config@master] [wikifunctions] Alter site to General Availability

https://gerrit.wikimedia.org/r/966570

Mentioned in SAL (#wikimedia-operations) [2023-11-07T14:10:17Z] <jforrester@deploy2002> Finished scap: Backport for [[gerrit:966570|[wikifunctions] Alter site to General Availability (T349054 T349061 T349063 T349080 T349082)]] (duration: 07m 00s)