Column triggers: Allow assigning user who performs the move
Summary:
Allow defining a project workboard column trigger which sets a "dynamic" assignee, similar to the "Current User" functionality already existing in other "Assigned to" fields, for example Maniphest's Advanced Search form.
The logic is similar to `PhabricatorPeopleNoOwnerDatasource`; it defines `const FUNCTION_TOKEN = 'viewer()'` to avoid `Value for "Assign task to" rule is invalid: User PHID ("viewer()") is not a valid user.`
Note: In the meantime my user clarified that they do not only want every task to always be assigned in a column but are interested in only assigning tasks to the current user when the task is currently unassigned. That would be a separate followup patch obviously.
Closes T16058
Test Plan:
* Go to a project workboard like http://phorge.localhost/project/board/1/ and define a second column
* On the non-default column, click the Cogs button in its column header and select "New Trigger..."
* Set some random trigger name
* In the Rules condition dropdown, select "Assign task to"
* In the Rules condition value field, write/select "viewer()" or "Current Viewer"
* Click "Create Trigger"
* Move tasks (both assigned and unassigned) into the column with the trigger, see preview in bottom right workboard corner, see that the card assignee avatar becomes the current user; open the task and see the timeline entry that the assignee was changed to the current user
* Move task back to previous column without trigger on workboard; no assignee changes
* On the non-default column, click the Pencil button in its column header and select "Bulk Edit Tasks..."; in the Bulk Editor, under Bulk Edit Actions, select "Assign to" in the dropdown, type "viewer()" in the username field, no such option exists as expected
Reviewers: O1 Blessed Committers, valerio.bozzolan
Reviewed By: O1 Blessed Committers, valerio.bozzolan
Subscribers: tobiaswiese, valerio.bozzolan, Matthew, Cigaryno
Maniphest Tasks: T16058
Differential Revision: https://we.phorge.it/D25991