1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-02-17 01:08:41 +01:00

Add support for custom "Wait for Approval" instructions

Summary:
See PHI1229. An install has a somewhat duct-taped registration flow which can dump users on the "Wait for Approval" screen without clear guidance. The desired guidance is something like "this is totally normal, just wait a bit for a bot to approve you".

Adding guidance here is generally reasonable and consistent with the intent of this feature.

Test Plan: {F6426583}

Reviewers: amckinley

Reviewed By: amckinley

Subscribers: kylec

Differential Revision: https://secure.phabricator.com/D20492
This commit is contained in:
epriestley 2019-05-03 08:26:23 -07:00
parent e5fe4dffe1
commit 18f0f8b029
3 changed files with 55 additions and 3 deletions

View file

@ -2419,6 +2419,7 @@ phutil_register_library_map(array(
'PhabricatorAuthTryFactorAction' => 'applications/auth/action/PhabricatorAuthTryFactorAction.php', 'PhabricatorAuthTryFactorAction' => 'applications/auth/action/PhabricatorAuthTryFactorAction.php',
'PhabricatorAuthUnlinkController' => 'applications/auth/controller/PhabricatorAuthUnlinkController.php', 'PhabricatorAuthUnlinkController' => 'applications/auth/controller/PhabricatorAuthUnlinkController.php',
'PhabricatorAuthValidateController' => 'applications/auth/controller/PhabricatorAuthValidateController.php', 'PhabricatorAuthValidateController' => 'applications/auth/controller/PhabricatorAuthValidateController.php',
'PhabricatorAuthWaitForApprovalMessageType' => 'applications/auth/message/PhabricatorAuthWaitForApprovalMessageType.php',
'PhabricatorAuthWelcomeMailMessageType' => 'applications/auth/message/PhabricatorAuthWelcomeMailMessageType.php', 'PhabricatorAuthWelcomeMailMessageType' => 'applications/auth/message/PhabricatorAuthWelcomeMailMessageType.php',
'PhabricatorAuthenticationConfigOptions' => 'applications/config/option/PhabricatorAuthenticationConfigOptions.php', 'PhabricatorAuthenticationConfigOptions' => 'applications/config/option/PhabricatorAuthenticationConfigOptions.php',
'PhabricatorAutoEventListener' => 'infrastructure/events/PhabricatorAutoEventListener.php', 'PhabricatorAutoEventListener' => 'infrastructure/events/PhabricatorAutoEventListener.php',
@ -8357,6 +8358,7 @@ phutil_register_library_map(array(
'PhabricatorAuthTryFactorAction' => 'PhabricatorSystemAction', 'PhabricatorAuthTryFactorAction' => 'PhabricatorSystemAction',
'PhabricatorAuthUnlinkController' => 'PhabricatorAuthController', 'PhabricatorAuthUnlinkController' => 'PhabricatorAuthController',
'PhabricatorAuthValidateController' => 'PhabricatorAuthController', 'PhabricatorAuthValidateController' => 'PhabricatorAuthController',
'PhabricatorAuthWaitForApprovalMessageType' => 'PhabricatorAuthMessageType',
'PhabricatorAuthWelcomeMailMessageType' => 'PhabricatorAuthMessageType', 'PhabricatorAuthWelcomeMailMessageType' => 'PhabricatorAuthMessageType',
'PhabricatorAuthenticationConfigOptions' => 'PhabricatorApplicationConfigOptions', 'PhabricatorAuthenticationConfigOptions' => 'PhabricatorApplicationConfigOptions',
'PhabricatorAutoEventListener' => 'PhabricatorEventListener', 'PhabricatorAutoEventListener' => 'PhabricatorEventListener',

View file

@ -18,20 +18,51 @@ final class PhabricatorAuthNeedsApprovalController
public function handleRequest(AphrontRequest $request) { public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer(); $viewer = $this->getViewer();
$instructions = $this->newCustomWaitForApprovalInstructions();
$wait_for_approval = pht( $wait_for_approval = pht(
"Your account has been created, but needs to be approved by an ". "Your account has been created, but needs to be approved by an ".
"administrator. You'll receive an email once your account is approved."); "administrator. You'll receive an email once your account is approved.");
$dialog = id(new AphrontDialogView()) $dialog = $this->newDialog()
->setUser($viewer)
->setTitle(pht('Wait for Approval')) ->setTitle(pht('Wait for Approval'))
->appendChild($wait_for_approval) ->appendChild($wait_for_approval)
->addCancelButton('/', pht('Wait Patiently')); ->addCancelButton('/', pht('Wait Patiently'));
$crumbs = $this->buildApplicationCrumbs()
->addTextCrumb(pht('Wait For Approval'))
->setBorder(true);
return $this->newPage() return $this->newPage()
->setTitle(pht('Wait For Approval')) ->setTitle(pht('Wait For Approval'))
->appendChild($dialog); ->setCrumbs($crumbs)
->appendChild(
array(
$instructions,
$dialog,
));
} }
private function newCustomWaitForApprovalInstructions() {
$viewer = $this->getViewer();
$text = PhabricatorAuthMessage::loadMessageText(
$viewer,
PhabricatorAuthWaitForApprovalMessageType::MESSAGEKEY);
if (!strlen($text)) {
return null;
}
$remarkup_view = new PHUIRemarkupView($viewer, $text);
return phutil_tag(
'div',
array(
'class' => 'auth-custom-message',
),
$remarkup_view);
}
} }

View file

@ -0,0 +1,19 @@
<?php
final class PhabricatorAuthWaitForApprovalMessageType
extends PhabricatorAuthMessageType {
const MESSAGEKEY = 'auth.wait-for-approval';
public function getDisplayName() {
return pht('Wait For Approval Instructions');
}
public function getShortDescription() {
return pht(
'Instructions on the "Wait For Approval" screen, shown to users who '.
'have registered an account that has not yet been approved by an '.
'administrator.');
}
}