mirror of
https://we.phorge.it/source/phorge.git
synced 2025-01-11 07:11:04 +01:00
When users try to log out with no providers configured, warn them of the consequences
Summary: Fixes T13406. On the logout screen, test for no configured providers and warn users they may be getting into more trouble than they expect. Test Plan: - Logged out of a normal install and a fresh (unconfigured) install. {F6847659} Maniphest Tasks: T13406 Differential Revision: https://secure.phabricator.com/D20789
This commit is contained in:
parent
318e8ebdac
commit
caccbb69d2
3 changed files with 48 additions and 4 deletions
|
@ -68,12 +68,42 @@ final class PhabricatorLogoutController
|
||||||
->setURI('/auth/loggedout/');
|
->setURI('/auth/loggedout/');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($viewer->getPHID()) {
|
if ($viewer->getPHID()) {
|
||||||
return $this->newDialog()
|
$dialog = $this->newDialog()
|
||||||
->setTitle(pht('Log Out?'))
|
->setTitle(pht('Log Out?'))
|
||||||
->appendChild(pht('Are you sure you want to log out?'))
|
->appendParagraph(pht('Are you sure you want to log out?'))
|
||||||
->addSubmitButton(pht('Log Out'))
|
|
||||||
->addCancelButton('/');
|
->addCancelButton('/');
|
||||||
|
|
||||||
|
$configs = id(new PhabricatorAuthProviderConfigQuery())
|
||||||
|
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||||||
|
->execute();
|
||||||
|
if (!$configs) {
|
||||||
|
$dialog
|
||||||
|
->appendRemarkup(
|
||||||
|
pht(
|
||||||
|
'WARNING: You have not configured any authentication providers '.
|
||||||
|
'yet, so your account has no login credentials. If you log out '.
|
||||||
|
'now, you will not be able to log back in normally.'))
|
||||||
|
->appendParagraph(
|
||||||
|
pht(
|
||||||
|
'To enable the login flow, follow setup guidance and configure '.
|
||||||
|
'at least one authentication provider, then associate '.
|
||||||
|
'credentials with your account. After completing these steps, '.
|
||||||
|
'you will be able to log out and log back in normally.'))
|
||||||
|
->appendParagraph(
|
||||||
|
pht(
|
||||||
|
'If you log out now, you can still regain access to your '.
|
||||||
|
'account later by using the account recovery workflow. The '.
|
||||||
|
'login screen will prompt you with recovery instructions.'));
|
||||||
|
|
||||||
|
$button = pht('Log Out Anyway');
|
||||||
|
} else {
|
||||||
|
$button = pht('Log Out');
|
||||||
|
}
|
||||||
|
|
||||||
|
$dialog->addSubmitButton($button);
|
||||||
|
return $dialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
return id(new AphrontRedirectResponse())->setURI('/');
|
return id(new AphrontRedirectResponse())->setURI('/');
|
||||||
|
|
|
@ -64,7 +64,7 @@ final class PhabricatorAuthListController
|
||||||
array(
|
array(
|
||||||
'href' => $this->getApplicationURI('config/new/'),
|
'href' => $this->getApplicationURI('config/new/'),
|
||||||
),
|
),
|
||||||
pht('Add Authentication Provider'))));
|
pht('Add Provider'))));
|
||||||
|
|
||||||
$crumbs = $this->buildApplicationCrumbs();
|
$crumbs = $this->buildApplicationCrumbs();
|
||||||
$crumbs->addTextCrumb(pht('Login and Registration'));
|
$crumbs->addTextCrumb(pht('Login and Registration'));
|
||||||
|
|
|
@ -160,6 +160,20 @@ final class AphrontDialogView
|
||||||
return $this->appendChild($box);
|
return $this->appendChild($box);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function appendRemarkup($remarkup) {
|
||||||
|
$viewer = $this->getViewer();
|
||||||
|
$view = new PHUIRemarkupView($viewer, $remarkup);
|
||||||
|
|
||||||
|
$view_tag = phutil_tag(
|
||||||
|
'div',
|
||||||
|
array(
|
||||||
|
'class' => 'aphront-dialog-view-paragraph',
|
||||||
|
),
|
||||||
|
$view);
|
||||||
|
|
||||||
|
return $this->appendChild($view_tag);
|
||||||
|
}
|
||||||
|
|
||||||
public function appendParagraph($paragraph) {
|
public function appendParagraph($paragraph) {
|
||||||
return $this->appendParagraphTag($paragraph);
|
return $this->appendParagraphTag($paragraph);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue