HomePhabricator

Prevent users from removing task titles with "Bulk Edit"

Description

Prevent users from removing task titles with "Bulk Edit"

Summary:
See downstream https://phabricator.wikimedia.org/T209449.

The "Bulk Edit" flow works with setContinueOnMissingFields(true), so newRequiredError() errors are ignored. This allows you to apply a transaction which changes the title to "" (the empty string) without actually hitting any errors which the workflow respects.

(Normally, setContinueOnMissingFields(...) workflows only edit properties that can't be missing, like the status of an object, so this is an unusual flow.)

Instead, validate more narrowly:

  • Transactions which would remove the title get an "invalid" error, which is respected even under "setContinueOnMissingFields()".
  • Then, we try to raise a "missing/required" error if everything otherwise looks okay.

Test Plan:

  • Edited a task title normally.
  • Edited a task to remove the title (got an error).
  • Created a task with no title (disallowed: got an error).
  • Bulk edited a task to remove its title.
    • Before change: allowed.
    • After change: disallowed.

Reviewers: amckinley

Reviewed By: amckinley

Differential Revision: https://secure.phabricator.com/D20339

Details

Provenance
epriestleyAuthored on Mar 28 2019, 3:53 PM
epriestleyPushed on Mar 28 2019, 4:06 PM
Reviewer
amckinley
Differential Revision
D20339: Prevent users from removing task titles with "Bulk Edit"
Parents
rP6bb9d3ac67a1: Allow users to add "ProfileMenu" items on mobile
Branches
Unknown
Tags
Unknown
Build Status
Buildable 22416
Build 30671: Run Core Tests