1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-26 08:42:41 +01:00

Allow Auth messages to have detailed descriptions and default values, then give "Email Login" both

Summary:
Depends on D20664. Ref T13343. There's a reasonable value for the default "Email Login" auth message (generic "you reset your password" text) that installs may reasonably want to replace. Add support for a default value.

Also, since it isn't completely obvious where this message shows up, add support for an extended description and explain what's going on in more detail.

Test Plan:
  - Viewed message detail page, saw more detailed information.
  - Sent mail (got default), overrode message and sent mail (got custom message), deleted message (got default again).

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13343

Differential Revision: https://secure.phabricator.com/D20665
This commit is contained in:
epriestley 2019-07-19 09:22:52 -07:00
parent 38d30af362
commit ced416cc73
5 changed files with 64 additions and 11 deletions

View file

@ -97,20 +97,35 @@ final class PhabricatorAuthMessageViewController
private function buildPropertiesView(PhabricatorAuthMessage $message) {
$viewer = $this->getViewer();
$message_type = $message->getMessageType();
$view = id(new PHUIPropertyListView())
->setViewer($viewer);
$view->addProperty(
pht('Description'),
$message->getMessageType()->getShortDescription());
$full_description = $message_type->getFullDescription();
if (strlen($full_description)) {
$view->addTextContent(new PHUIRemarkupView($viewer, $full_description));
} else {
$short_description = $message_type->getShortDescription();
$view->addProperty(pht('Description'), $short_description);
}
if (strlen($message->getMessageText())) {
$message_text = $message->getMessageText();
if (strlen($message_text)) {
$view->addSectionHeader(
pht('Message Preview'),
PHUIPropertyListView::ICON_SUMMARY);
$view->addTextContent(
new PHUIRemarkupView($viewer, $message->getMessageText()));
$view->addTextContent(new PHUIRemarkupView($viewer, $message_text));
}
$default_text = $message_type->getDefaultMessageText();
if (strlen($default_text)) {
$view->addSectionHeader(
pht('Default Message'),
PHUIPropertyListView::ICON_SUMMARY);
$view->addTextContent(new PHUIRemarkupView($viewer, $default_text));
}
return $view;

View file

@ -15,4 +15,27 @@ final class PhabricatorAuthEmailLoginMessageType
'to access their account.');
}
public function getFullDescription() {
return pht(
'Guidance included in the mail message body when users request an '.
'email link to access their account.'.
"\n\n".
'For installs with password authentication enabled, users access this '.
'workflow by using the "Forgot your password?" link on the login '.
'screen.'.
"\n\n".
'For installs without password authentication enabled, users access '.
'this workflow by using the "Send a login link to your email address." '.
'link on the login screen. This workflow allows users to recover '.
'access to their account if there is an issue with an external '.
'login service.');
}
public function getDefaultMessageText() {
return pht(
'You (or someone pretending to be you) recently requested an account '.
'recovery link be sent to this email address. If you did not make '.
'this request, you can ignore this message.');
}
}

View file

@ -30,4 +30,12 @@ abstract class PhabricatorAuthMessageType
abstract public function getDisplayName();
abstract public function getShortDescription();
public function getFullDescription() {
return null;
}
public function getDefaultMessageText() {
return null;
}
}

View file

@ -75,12 +75,16 @@ final class PhabricatorAuthMessage
$message_key) {
$message = self::loadMessage($viewer, $message_key);
if (!$message) {
return null;
if ($message) {
$message_text = $message->getMessageText();
if (strlen($message_text)) {
return $message_text;
}
}
return $message->getMessageText();
$message_type = PhabricatorAuthMessageType::newFromKey($message_key);
return $message_type->getDefaultMessageText();
}

View file

@ -90,7 +90,10 @@ abstract class PhabricatorPeopleMailEngine
->setConfig('uri.base', PhabricatorEnv::getProductionURI('/'))
->setMode(PhutilRemarkupEngine::MODE_TEXT);
return $engine->markupText($text);
$rendered_text = $engine->markupText($text);
$rendered_text = rtrim($rendered_text, "\n");
return $rendered_text;
}
}