Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/auth/editor/PhabricatorAuthFactorProviderEditEngine.php
12256 views
1
<?php
2
3
final class PhabricatorAuthFactorProviderEditEngine
4
extends PhabricatorEditEngine {
5
6
private $providerFactor;
7
8
const ENGINECONST = 'auth.factor.provider';
9
10
public function isEngineConfigurable() {
11
return false;
12
}
13
14
public function getEngineName() {
15
return pht('MFA Providers');
16
}
17
18
public function getSummaryHeader() {
19
return pht('Edit MFA Providers');
20
}
21
22
public function getSummaryText() {
23
return pht('This engine is used to edit MFA providers.');
24
}
25
26
public function getEngineApplicationClass() {
27
return 'PhabricatorAuthApplication';
28
}
29
30
public function setProviderFactor(PhabricatorAuthFactor $factor) {
31
$this->providerFactor = $factor;
32
return $this;
33
}
34
35
public function getProviderFactor() {
36
return $this->providerFactor;
37
}
38
39
protected function newEditableObject() {
40
$factor = $this->getProviderFactor();
41
if ($factor) {
42
$provider = PhabricatorAuthFactorProvider::initializeNewProvider($factor);
43
} else {
44
$provider = new PhabricatorAuthFactorProvider();
45
}
46
47
return $provider;
48
}
49
50
protected function newObjectQuery() {
51
return new PhabricatorAuthFactorProviderQuery();
52
}
53
54
protected function getObjectCreateTitleText($object) {
55
return pht('Create MFA Provider');
56
}
57
58
protected function getObjectCreateButtonText($object) {
59
return pht('Create MFA Provider');
60
}
61
62
protected function getObjectEditTitleText($object) {
63
return pht('Edit MFA Provider');
64
}
65
66
protected function getObjectEditShortText($object) {
67
return $object->getObjectName();
68
}
69
70
protected function getObjectCreateShortText() {
71
return pht('Create MFA Provider');
72
}
73
74
protected function getObjectName() {
75
return pht('MFA Provider');
76
}
77
78
protected function getEditorURI() {
79
return '/auth/mfa/edit/';
80
}
81
82
protected function getObjectCreateCancelURI($object) {
83
return '/auth/mfa/';
84
}
85
86
protected function getObjectViewURI($object) {
87
return $object->getURI();
88
}
89
90
protected function getCreateNewObjectPolicy() {
91
return $this->getApplication()->getPolicy(
92
AuthManageProvidersCapability::CAPABILITY);
93
}
94
95
protected function buildCustomEditFields($object) {
96
$factor = $object->getFactor();
97
$factor_name = $factor->getFactorName();
98
99
$status_map = PhabricatorAuthFactorProviderStatus::getMap();
100
101
$fields = array(
102
id(new PhabricatorStaticEditField())
103
->setKey('displayType')
104
->setLabel(pht('Factor Type'))
105
->setDescription(pht('Type of the MFA provider.'))
106
->setValue($factor_name),
107
id(new PhabricatorTextEditField())
108
->setKey('name')
109
->setTransactionType(
110
PhabricatorAuthFactorProviderNameTransaction::TRANSACTIONTYPE)
111
->setLabel(pht('Name'))
112
->setDescription(pht('Display name for the MFA provider.'))
113
->setValue($object->getName())
114
->setPlaceholder($factor_name),
115
id(new PhabricatorSelectEditField())
116
->setKey('status')
117
->setTransactionType(
118
PhabricatorAuthFactorProviderStatusTransaction::TRANSACTIONTYPE)
119
->setLabel(pht('Status'))
120
->setDescription(pht('Status of the MFA provider.'))
121
->setValue($object->getStatus())
122
->setOptions($status_map),
123
);
124
125
$factor_fields = $factor->newEditEngineFields($this, $object);
126
foreach ($factor_fields as $field) {
127
$fields[] = $field;
128
}
129
130
return $fields;
131
}
132
133
}
134
135