@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final class PhabricatorAuthMessageEditEngine
4 extends PhabricatorEditEngine {
5
6 private $messageType;
7
8 const ENGINECONST = 'auth.message';
9
10 public function isEngineConfigurable() {
11 return false;
12 }
13
14 public function getEngineName() {
15 return pht('Auth Messages');
16 }
17
18 public function getSummaryHeader() {
19 return pht('Edit Auth Messages');
20 }
21
22 public function getSummaryText() {
23 return pht('This engine is used to edit authentication messages.');
24 }
25
26 public function getEngineApplicationClass() {
27 return PhabricatorAuthApplication::class;
28 }
29
30 public function setMessageType(PhabricatorAuthMessageType $type) {
31 $this->messageType = $type;
32 return $this;
33 }
34
35 public function getMessageType() {
36 return $this->messageType;
37 }
38
39 protected function newEditableObject() {
40 $type = $this->getMessageType();
41
42 if ($type) {
43 $message = PhabricatorAuthMessage::initializeNewMessage($type);
44 } else {
45 $message = new PhabricatorAuthMessage();
46 }
47
48 return $message;
49 }
50
51 protected function newObjectQuery() {
52 return new PhabricatorAuthMessageQuery();
53 }
54
55 protected function getObjectCreateTitleText($object) {
56 return pht('Create Auth Message');
57 }
58
59 protected function getObjectCreateButtonText($object) {
60 return pht('Create Auth Message');
61 }
62
63 protected function getObjectEditTitleText($object) {
64 return pht('Edit Auth Message');
65 }
66
67 protected function getObjectEditShortText($object) {
68 return $object->getObjectName();
69 }
70
71 protected function getObjectCreateShortText() {
72 return pht('Create Auth Message');
73 }
74
75 protected function getObjectName() {
76 return pht('Auth Message');
77 }
78
79 protected function getEditorURI() {
80 return '/auth/message/edit/';
81 }
82
83 protected function getObjectCreateCancelURI($object) {
84 return '/auth/message/';
85 }
86
87 protected function getObjectViewURI($object) {
88 return $object->getURI();
89 }
90
91 protected function getCreateNewObjectPolicy() {
92 return $this->getApplication()->getPolicy(
93 AuthManageProvidersCapability::CAPABILITY);
94 }
95
96 protected function buildCustomEditFields($object) {
97 return array(
98 id(new PhabricatorRemarkupEditField())
99 ->setKey('messageText')
100 ->setTransactionType(
101 PhabricatorAuthMessageTextTransaction::TRANSACTIONTYPE)
102 ->setLabel(pht('Message Text'))
103 ->setDescription(pht('Custom text for the message.'))
104 ->setValue($object->getMessageText()),
105 );
106 }
107
108}