mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-30 18:52:42 +01:00
6bbba1e315
Summary: [WIP] Tossing this up for safety and to read through it. Need to test, update some of the other flows. This updates everything in Auth for new UI and modern conventions. Test Plan: Loooots of random testing, new providers, edit providers, logging out, forgot password... more coming. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Differential Revision: https://secure.phabricator.com/D15550
91 lines
2.8 KiB
PHP
91 lines
2.8 KiB
PHP
<?php
|
|
|
|
final class PhabricatorAuthNeedsMultiFactorController
|
|
extends PhabricatorAuthController {
|
|
|
|
public function shouldRequireMultiFactorEnrollment() {
|
|
// Users need access to this controller in order to enroll in multi-factor
|
|
// auth.
|
|
return false;
|
|
}
|
|
|
|
public function handleRequest(AphrontRequest $request) {
|
|
$viewer = $this->getViewer();
|
|
|
|
$panel = id(new PhabricatorMultiFactorSettingsPanel())
|
|
->setUser($viewer)
|
|
->setViewer($viewer)
|
|
->setOverrideURI($this->getApplicationURI('/multifactor/'))
|
|
->processRequest($request);
|
|
|
|
if ($panel instanceof AphrontResponse) {
|
|
return $panel;
|
|
}
|
|
|
|
$crumbs = $this->buildApplicationCrumbs();
|
|
$crumbs->addTextCrumb(pht('Add Multi-Factor Auth'));
|
|
|
|
$viewer->updateMultiFactorEnrollment();
|
|
|
|
if (!$viewer->getIsEnrolledInMultiFactor()) {
|
|
$help = id(new PHUIInfoView())
|
|
->setTitle(pht('Add Multi-Factor Authentication To Your Account'))
|
|
->setSeverity(PHUIInfoView::SEVERITY_WARNING)
|
|
->setErrors(
|
|
array(
|
|
pht(
|
|
'Before you can use Phabricator, you need to add multi-factor '.
|
|
'authentication to your account.'),
|
|
pht(
|
|
'Multi-factor authentication helps secure your account by '.
|
|
'making it more difficult for attackers to gain access or '.
|
|
'take sensitive actions.'),
|
|
pht(
|
|
'To learn more about multi-factor authentication, click the '.
|
|
'%s button below.',
|
|
phutil_tag('strong', array(), pht('Help'))),
|
|
pht(
|
|
'To add an authentication factor, click the %s button below.',
|
|
phutil_tag('strong', array(), pht('Add Authentication Factor'))),
|
|
pht(
|
|
'To continue, add at least one authentication factor to your '.
|
|
'account.'),
|
|
));
|
|
} else {
|
|
$help = id(new PHUIInfoView())
|
|
->setTitle(pht('Multi-Factor Authentication Configured'))
|
|
->setSeverity(PHUIInfoView::SEVERITY_NOTICE)
|
|
->setErrors(
|
|
array(
|
|
pht(
|
|
'You have successfully configured multi-factor authentication '.
|
|
'for your account.'),
|
|
pht(
|
|
'You can make adjustments from the Settings panel later.'),
|
|
pht(
|
|
'When you are ready, %s.',
|
|
phutil_tag(
|
|
'strong',
|
|
array(),
|
|
phutil_tag(
|
|
'a',
|
|
array(
|
|
'href' => '/',
|
|
),
|
|
pht('continue to Phabricator')))),
|
|
));
|
|
}
|
|
|
|
$view = array(
|
|
$help,
|
|
$panel,
|
|
);
|
|
|
|
return $this->newPage()
|
|
->setTitle(pht('Add Multi-Factor Authentication'))
|
|
->setCrumbs($crumbs)
|
|
->appendChild($view);
|
|
|
|
}
|
|
|
|
}
|