1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-24 15:52:41 +01:00
phorge-phorge/src/applications/auth/controller
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
..
config Allow login to be disabled for authentication providers 2015-12-15 15:03:06 -08:00
PhabricatorAuthConfirmLinkController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorAuthController.php Remove some low-hanging buildStandardPageResponse() methods 2015-11-03 10:11:36 -08:00
PhabricatorAuthDowngradeSessionController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorAuthFinishController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorAuthInviteController.php Support invites in the registration and login flow 2015-02-11 06:06:28 -08:00
PhabricatorAuthLinkController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorAuthLoginController.php Prevent duplicate account links from being created by swapping logins and then refreshing the link 2015-10-24 04:50:36 -07:00
PhabricatorAuthNeedsApprovalController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorAuthNeedsMultiFactorController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorAuthOldOAuthRedirectController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorAuthOneTimeLoginController.php Prevent mailing lists from being bin/auth recover'd 2015-10-24 18:12:56 -07:00
PhabricatorAuthRegisterController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorAuthRevokeTokenController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorAuthSSHKeyController.php Separate SSH key management from the settings panel 2014-11-11 08:18:26 -08:00
PhabricatorAuthSSHKeyDeleteController.php Separate SSH key management from the settings panel 2014-11-11 08:18:26 -08:00
PhabricatorAuthSSHKeyEditController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorAuthSSHKeyGenerateController.php phtize all the things 2015-05-22 21:16:39 +10:00
PhabricatorAuthStartController.php Improve handling of multiple edit forms when logged out 2015-12-17 08:30:54 -08:00
PhabricatorAuthTerminateSessionController.php Use phutil_hashes_are_identical() when comparing hashes in Phabricator 2015-09-01 15:52:44 -07:00
PhabricatorAuthUnlinkController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorAuthValidateController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorDisabledUserController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorEmailLoginController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorEmailVerificationController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorLogoutController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorMustVerifyEmailController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00
PhabricatorRefreshCSRFController.php Update Auth for handleRequest 2015-08-01 16:49:27 -07:00