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:
parent
38d30af362
commit
ced416cc73
5 changed files with 64 additions and 11 deletions
|
@ -97,20 +97,35 @@ final class PhabricatorAuthMessageViewController
|
||||||
private function buildPropertiesView(PhabricatorAuthMessage $message) {
|
private function buildPropertiesView(PhabricatorAuthMessage $message) {
|
||||||
$viewer = $this->getViewer();
|
$viewer = $this->getViewer();
|
||||||
|
|
||||||
|
$message_type = $message->getMessageType();
|
||||||
|
|
||||||
$view = id(new PHUIPropertyListView())
|
$view = id(new PHUIPropertyListView())
|
||||||
->setViewer($viewer);
|
->setViewer($viewer);
|
||||||
|
|
||||||
$view->addProperty(
|
$full_description = $message_type->getFullDescription();
|
||||||
pht('Description'),
|
if (strlen($full_description)) {
|
||||||
$message->getMessageType()->getShortDescription());
|
$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(
|
$view->addSectionHeader(
|
||||||
pht('Message Preview'),
|
pht('Message Preview'),
|
||||||
PHUIPropertyListView::ICON_SUMMARY);
|
PHUIPropertyListView::ICON_SUMMARY);
|
||||||
|
|
||||||
$view->addTextContent(
|
$view->addTextContent(new PHUIRemarkupView($viewer, $message_text));
|
||||||
new PHUIRemarkupView($viewer, $message->getMessageText()));
|
}
|
||||||
|
|
||||||
|
$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;
|
return $view;
|
||||||
|
|
|
@ -15,4 +15,27 @@ final class PhabricatorAuthEmailLoginMessageType
|
||||||
'to access their account.');
|
'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.');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,4 +30,12 @@ abstract class PhabricatorAuthMessageType
|
||||||
abstract public function getDisplayName();
|
abstract public function getDisplayName();
|
||||||
abstract public function getShortDescription();
|
abstract public function getShortDescription();
|
||||||
|
|
||||||
|
public function getFullDescription() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDefaultMessageText() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,12 +75,16 @@ final class PhabricatorAuthMessage
|
||||||
$message_key) {
|
$message_key) {
|
||||||
|
|
||||||
$message = self::loadMessage($viewer, $message_key);
|
$message = self::loadMessage($viewer, $message_key);
|
||||||
|
if ($message) {
|
||||||
if (!$message) {
|
$message_text = $message->getMessageText();
|
||||||
return null;
|
if (strlen($message_text)) {
|
||||||
|
return $message_text;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $message->getMessageText();
|
$message_type = PhabricatorAuthMessageType::newFromKey($message_key);
|
||||||
|
|
||||||
|
return $message_type->getDefaultMessageText();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,10 @@ abstract class PhabricatorPeopleMailEngine
|
||||||
->setConfig('uri.base', PhabricatorEnv::getProductionURI('/'))
|
->setConfig('uri.base', PhabricatorEnv::getProductionURI('/'))
|
||||||
->setMode(PhutilRemarkupEngine::MODE_TEXT);
|
->setMode(PhutilRemarkupEngine::MODE_TEXT);
|
||||||
|
|
||||||
return $engine->markupText($text);
|
$rendered_text = $engine->markupText($text);
|
||||||
|
$rendered_text = rtrim($rendered_text, "\n");
|
||||||
|
|
||||||
|
return $rendered_text;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue