1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-18 03:20:59 +01:00
phorge-phorge/src/applications/auth
epriestley 5d76a4b0a2 Improve handling of multiple edit forms when logged out
Summary:
Ref T10004. Currently, when a logged-out user visits an application like Maniphest, we show them a disabled "Create Task" button with no dropdown menu.

This is technically correct in some sense because none of the items in the menu will work, but we can be more helpful and show the items, just in a disabled state:

{F1028903}

When the user clicks these, they'll be pushed through the login flow and (after D14804) end up on the same page they were on when they selected the item. From here, they can proceed normally.

I changed "...to continue." to "...to take this action." to hopefully be a little more clear. In particular, we do not //continue// the action after you log in: you end up back on the same page you started on. For example, if you clicked "Create New Bug" from the list view, you end up back on the list view and need to click "Create New Bug" again. If you clicked "Edit Task" from some task detail page, you end up on the task detail page and have to click "Edit Task" again.

I think this behavior is always very good. I think it is often the best possible behavior: for actions like "Edit Blocking Tasks" and "Merge Duplicates In", the alternatives I can see are:

  - Send user back to task page (best?)
  - Send user to standalone page with weird dialog on it and no context (underlying problem behavior all of this is tackling, clearly not good)
  - Send user back to task page, but with dialog open (very complicated, seems kind of confusing/undesirable?)

For actions like "Create New Bug" or "Edit Task", we have slightly better options:

  - Send user back to task page (very good?)
  - Send user to edit/create page (slightly better?)

However, we have no way to tell if a Workflow "makes sense" to complete in a standalone way. That is, we can't automatically determine which workflows are like "Edit Task" and which workflows are like "Merge Duplicates In".

Even within an action, this distinction is not straightforward. For example, "Create Task" can standalone from the Maniphest list view, but should not from a Workboard. "Edit Task" can standalone from the task detail page, but should not from an "Edit" pencil action on a list or a workboard.

Since the simpler behavior is easy, very good in all cases, often the best behavior, and never (I think?) confusing or misleading, I don't plan to puruse the "bring you back to the page, with the dialog open" behavior at any point. I'm theoretically open to discussion here if you REALLY want the dialogs to pop open magically but I think it's probably a lot of work.

Test Plan: As a logged out user, clicked "Create Task". Got a dropdown showing the options available to me if I log in. Clicked one, logged in, ended up in a reasonable place (the task list page where I'd started).

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10004

Differential Revision: https://secure.phabricator.com/D14806
2015-12-17 08:30:54 -08:00
..
action Rate limit multi-factor actions 2014-04-30 14:30:31 -07:00
application Allow applications to have multiple "help" menu items 2015-04-01 11:51:48 -07:00
capability Auth - add "manage providers" capability 2015-01-12 14:37:58 -08:00
conduit phtize all the things 2015-05-22 21:16:39 +10:00
constants Support invites in the registration and login flow 2015-02-11 06:06:28 -08:00
controller Improve handling of multiple edit forms when logged out 2015-12-17 08:30:54 -08:00
data Extend from Phobject 2015-06-15 18:02:27 +10:00
editor Allow login to be disabled for authentication providers 2015-12-15 15:03:06 -08:00
engine Use phutil_hashes_are_identical() when comparing hashes in Phabricator 2015-09-01 15:52:44 -07:00
exception Add email invites to Phabricator (logic only) 2015-02-09 16:12:36 -08:00
factor Add bin/auth unlimit and clean up a TODO 2015-09-14 07:03:39 -07:00
garbagecollector Provide bin/garbage for interacting with garbage collection 2015-10-02 09:17:24 -07:00
handler Modularize generation of supplemental login messages 2015-09-04 10:34:39 -07:00
management Various translation improvements 2015-11-03 07:02:46 +11:00
phid Mark PhabricatorPHIDType::getPHIDTypeApplicationClass() as abstract 2015-11-03 06:47:12 +11:00
provider Allow login to be disabled for authentication providers 2015-12-15 15:03:06 -08:00
query [Redesign] PhabricatorApplicationSearchResultView 2015-06-19 11:46:20 +01:00
sshkey phtize all the things 2015-05-22 21:16:39 +10:00
storage Allow login to be disabled for authentication providers 2015-12-15 15:03:06 -08:00
view Make CSS agnostic to underlying profile image size 2015-05-13 11:38:46 -07:00
worker Send emails for email invites 2015-02-11 06:06:09 -08:00