Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14037196
D10921.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
19 KB
Referenced Files
None
Subscribers
None
D10921.diff
View Options
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -1288,6 +1288,7 @@
'PhabricatorAuthAccountView' => 'applications/auth/view/PhabricatorAuthAccountView.php',
'PhabricatorAuthApplication' => 'applications/auth/application/PhabricatorAuthApplication.php',
'PhabricatorAuthAuthFactorPHIDType' => 'applications/auth/phid/PhabricatorAuthAuthFactorPHIDType.php',
+ 'PhabricatorAuthAuthProviderPHIDType' => 'applications/auth/phid/PhabricatorAuthAuthProviderPHIDType.php',
'PhabricatorAuthConfirmLinkController' => 'applications/auth/controller/PhabricatorAuthConfirmLinkController.php',
'PhabricatorAuthController' => 'applications/auth/controller/PhabricatorAuthController.php',
'PhabricatorAuthDAO' => 'applications/auth/storage/PhabricatorAuthDAO.php',
@@ -3054,6 +3055,7 @@
'AlmanacNamesTestCase' => 'PhabricatorTestCase',
'AlmanacNetwork' => array(
'AlmanacDAO',
+ 'PhabricatorApplicationTransactionInterface',
'PhabricatorPolicyInterface',
),
'AlmanacNetworkController' => 'AlmanacController',
@@ -3927,6 +3929,7 @@
'HeraldRemarkupRule' => 'PhabricatorObjectRemarkupRule',
'HeraldRule' => array(
'HeraldDAO',
+ 'PhabricatorApplicationTransactionInterface',
'PhabricatorFlaggableInterface',
'PhabricatorPolicyInterface',
'PhabricatorDestructibleInterface',
@@ -4372,6 +4375,7 @@
'PhabricatorAuthAccountView' => 'AphrontView',
'PhabricatorAuthApplication' => 'PhabricatorApplication',
'PhabricatorAuthAuthFactorPHIDType' => 'PhabricatorPHIDType',
+ 'PhabricatorAuthAuthProviderPHIDType' => 'PhabricatorPHIDType',
'PhabricatorAuthConfirmLinkController' => 'PhabricatorAuthController',
'PhabricatorAuthController' => 'PhabricatorController',
'PhabricatorAuthDAO' => 'PhabricatorLiskDAO',
@@ -4400,6 +4404,7 @@
'PhabricatorAuthOneTimeLoginController' => 'PhabricatorAuthController',
'PhabricatorAuthProviderConfig' => array(
'PhabricatorAuthDAO',
+ 'PhabricatorApplicationTransactionInterface',
'PhabricatorPolicyInterface',
),
'PhabricatorAuthProviderConfigController' => 'PhabricatorAuthController',
@@ -5516,6 +5521,7 @@
'PhabricatorSlowvoteOption' => 'PhabricatorSlowvoteDAO',
'PhabricatorSlowvotePoll' => array(
'PhabricatorSlowvoteDAO',
+ 'PhabricatorApplicationTransactionInterface',
'PhabricatorPolicyInterface',
'PhabricatorSubscribableInterface',
'PhabricatorFlaggableInterface',
diff --git a/src/applications/almanac/controller/AlmanacBindingViewController.php b/src/applications/almanac/controller/AlmanacBindingViewController.php
--- a/src/applications/almanac/controller/AlmanacBindingViewController.php
+++ b/src/applications/almanac/controller/AlmanacBindingViewController.php
@@ -42,23 +42,17 @@
$crumbs->addTextCrumb($service->getName(), $service_uri);
$crumbs->addTextCrumb($title);
- $xactions = id(new AlmanacBindingTransactionQuery())
- ->setViewer($viewer)
- ->withObjectPHIDs(array($binding->getPHID()))
- ->execute();
-
- $xaction_view = id(new PhabricatorApplicationTransactionView())
- ->setUser($viewer)
- ->setObjectPHID($binding->getPHID())
- ->setTransactions($xactions)
- ->setShouldTerminate(true);
+ $timeline = $this->buildTransactionTimeline(
+ $binding,
+ new AlmanacBindingTransactionQuery());
+ $timeline->setShouldTerminate(true);
return $this->buildApplicationPage(
array(
$crumbs,
$box,
$this->buildAlmanacPropertiesTable($binding),
- $xaction_view,
+ $timeline,
),
array(
'title' => $title,
diff --git a/src/applications/almanac/controller/AlmanacDeviceViewController.php b/src/applications/almanac/controller/AlmanacDeviceViewController.php
--- a/src/applications/almanac/controller/AlmanacDeviceViewController.php
+++ b/src/applications/almanac/controller/AlmanacDeviceViewController.php
@@ -40,16 +40,10 @@
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb($device->getName());
- $xactions = id(new AlmanacDeviceTransactionQuery())
- ->setViewer($viewer)
- ->withObjectPHIDs(array($device->getPHID()))
- ->execute();
-
- $xaction_view = id(new PhabricatorApplicationTransactionView())
- ->setUser($viewer)
- ->setObjectPHID($device->getPHID())
- ->setTransactions($xactions)
- ->setShouldTerminate(true);
+ $timeline = $this->buildTransactionTimeline(
+ $device,
+ new AlmanacDeviceTransactionQuery());
+ $timeline->setShouldTerminate(true);
return $this->buildApplicationPage(
array(
@@ -58,7 +52,7 @@
$interfaces,
$this->buildAlmanacPropertiesTable($device),
$this->buildSSHKeysTable($device),
- $xaction_view,
+ $timeline,
),
array(
'title' => $title,
diff --git a/src/applications/almanac/controller/AlmanacNetworkViewController.php b/src/applications/almanac/controller/AlmanacNetworkViewController.php
--- a/src/applications/almanac/controller/AlmanacNetworkViewController.php
+++ b/src/applications/almanac/controller/AlmanacNetworkViewController.php
@@ -38,22 +38,16 @@
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb($network->getName());
- $xactions = id(new AlmanacNetworkTransactionQuery())
- ->setViewer($viewer)
- ->withObjectPHIDs(array($network->getPHID()))
- ->execute();
-
- $xaction_view = id(new PhabricatorApplicationTransactionView())
- ->setUser($viewer)
- ->setObjectPHID($network->getPHID())
- ->setTransactions($xactions)
- ->setShouldTerminate(true);
+ $timeline = $this->buildTransactionTimeline(
+ $network,
+ new AlmanacNetworkTransactionQuery());
+ $timeline->setShouldTerminate(true);
return $this->buildApplicationPage(
array(
$crumbs,
$box,
- $xaction_view,
+ $timeline,
),
array(
'title' => $title,
diff --git a/src/applications/almanac/controller/AlmanacServiceViewController.php b/src/applications/almanac/controller/AlmanacServiceViewController.php
--- a/src/applications/almanac/controller/AlmanacServiceViewController.php
+++ b/src/applications/almanac/controller/AlmanacServiceViewController.php
@@ -40,16 +40,10 @@
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb($service->getName());
- $xactions = id(new AlmanacServiceTransactionQuery())
- ->setViewer($viewer)
- ->withObjectPHIDs(array($service->getPHID()))
- ->execute();
-
- $xaction_view = id(new PhabricatorApplicationTransactionView())
- ->setUser($viewer)
- ->setObjectPHID($service->getPHID())
- ->setTransactions($xactions)
- ->setShouldTerminate(true);
+ $timeline = $this->buildTransactionTimeline(
+ $service,
+ new AlmanacServiceTransactionQuery());
+ $timeline->setShouldTerminate(true);
return $this->buildApplicationPage(
array(
@@ -57,7 +51,7 @@
$box,
$bindings,
$this->buildAlmanacPropertiesTable($service),
- $xaction_view,
+ $timeline,
),
array(
'title' => $title,
diff --git a/src/applications/almanac/storage/AlmanacNetwork.php b/src/applications/almanac/storage/AlmanacNetwork.php
--- a/src/applications/almanac/storage/AlmanacNetwork.php
+++ b/src/applications/almanac/storage/AlmanacNetwork.php
@@ -2,7 +2,9 @@
final class AlmanacNetwork
extends AlmanacDAO
- implements PhabricatorPolicyInterface {
+ implements
+ PhabricatorApplicationTransactionInterface,
+ PhabricatorPolicyInterface {
protected $name;
protected $mailKey;
@@ -42,6 +44,22 @@
}
+/* -( PhabricatorApplicationTransactionInterface )------------------------- */
+
+
+ public function getApplicationTransactionEditor() {
+ return new AlmanacNetworkEditor();
+ }
+
+ public function getApplicationTransactionObject() {
+ return $this;
+ }
+
+ public function getApplicationTransactionTemplate() {
+ return new AlmanacNetworkTransaction();
+ }
+
+
/* -( PhabricatorPolicyInterface )----------------------------------------- */
diff --git a/src/applications/auth/controller/config/PhabricatorAuthEditController.php b/src/applications/auth/controller/config/PhabricatorAuthEditController.php
--- a/src/applications/auth/controller/config/PhabricatorAuthEditController.php
+++ b/src/applications/auth/controller/config/PhabricatorAuthEditController.php
@@ -144,7 +144,6 @@
->setContinueOnNoEffect(true)
->applyTransactions($config, $xactions);
-
if ($provider->hasSetupStep() && $is_new) {
$id = $config->getID();
$next_uri = $this->getApplicationURI('config/edit/'.$id.'/');
@@ -304,21 +303,15 @@
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb($crumb);
- $xaction_view = null;
+ $timeline = null;
if (!$is_new) {
- $xactions = id(new PhabricatorAuthProviderConfigTransactionQuery())
- ->withObjectPHIDs(array($config->getPHID()))
- ->setViewer($viewer)
- ->execute();
-
+ $timeline = $this->buildTransactionTimeline(
+ $config,
+ new PhabricatorAuthProviderConfigTransactionQuery());
+ $xactions = $timeline->getTransactions();
foreach ($xactions as $xaction) {
$xaction->setProvider($provider);
}
-
- $xaction_view = id(new PhabricatorApplicationTransactionView())
- ->setUser($viewer)
- ->setObjectPHID($config->getPHID())
- ->setTransactions($xactions);
}
$form_box = id(new PHUIObjectBoxView())
@@ -331,7 +324,7 @@
$crumbs,
$form_box,
$footer,
- $xaction_view,
+ $timeline,
),
array(
'title' => $title,
diff --git a/src/applications/auth/phid/PhabricatorAuthAuthProviderPHIDType.php b/src/applications/auth/phid/PhabricatorAuthAuthProviderPHIDType.php
new file mode 100644
--- /dev/null
+++ b/src/applications/auth/phid/PhabricatorAuthAuthProviderPHIDType.php
@@ -0,0 +1,35 @@
+<?php
+
+final class PhabricatorAuthAuthProviderPHIDType extends PhabricatorPHIDType {
+
+ const TYPECONST = 'AUTH';
+
+ public function getTypeName() {
+ return pht('Auth Provider');
+ }
+
+ public function newObject() {
+ return new PhabricatorAuthProviderConfig();
+ }
+
+ protected function buildQueryForObjects(
+ PhabricatorObjectQuery $query,
+ array $phids) {
+
+ return id(new PhabricatorAuthProviderConfigQuery())
+ ->withPHIDs($phids);
+ }
+
+ public function loadHandles(
+ PhabricatorHandleQuery $query,
+ array $handles,
+ array $objects) {
+
+ foreach ($handles as $phid => $handle) {
+ $provider = $objects[$phid];
+
+ $handle->setName($provider->getProviderName());
+ }
+ }
+
+}
diff --git a/src/applications/auth/provider/PhabricatorOAuth2AuthProvider.php b/src/applications/auth/provider/PhabricatorOAuth2AuthProvider.php
--- a/src/applications/auth/provider/PhabricatorOAuth2AuthProvider.php
+++ b/src/applications/auth/provider/PhabricatorOAuth2AuthProvider.php
@@ -159,7 +159,7 @@
'%s set the OAuth application secret for this provider.',
$xaction->renderHandleLink($author_phid));
}
- case self::PROPERTY_APP_NOTE:
+ case self::PROPERTY_NOTE:
if (strlen($old)) {
return pht(
'%s updated the OAuth application notes for this provider.',
diff --git a/src/applications/auth/storage/PhabricatorAuthProviderConfig.php b/src/applications/auth/storage/PhabricatorAuthProviderConfig.php
--- a/src/applications/auth/storage/PhabricatorAuthProviderConfig.php
+++ b/src/applications/auth/storage/PhabricatorAuthProviderConfig.php
@@ -1,7 +1,10 @@
<?php
-final class PhabricatorAuthProviderConfig extends PhabricatorAuthDAO
- implements PhabricatorPolicyInterface {
+final class PhabricatorAuthProviderConfig
+ extends PhabricatorAuthDAO
+ implements
+ PhabricatorApplicationTransactionInterface,
+ PhabricatorPolicyInterface {
protected $providerClass;
protected $providerType;
@@ -20,7 +23,7 @@
public function generatePHID() {
return PhabricatorPHID::generateNewPHID(
- PhabricatorPHIDConstants::PHID_TYPE_AUTH);
+ PhabricatorAuthAuthProviderPHIDType::TYPECONST);
}
public function getConfiguration() {
@@ -79,6 +82,22 @@
}
+/* -( PhabricatorApplicationTransactionInterface )------------------------- */
+
+
+ public function getApplicationTransactionEditor() {
+ return new PhabricatorAuthProviderConfigEditor();
+ }
+
+ public function getApplicationTransactionObject() {
+ return $this;
+ }
+
+ public function getApplicationTransactionTemplate() {
+ return new PhabricatorAuthProviderConfigTransaction();
+ }
+
+
/* -( PhabricatorPolicyInterface )----------------------------------------- */
diff --git a/src/applications/auth/storage/PhabricatorAuthProviderConfigTransaction.php b/src/applications/auth/storage/PhabricatorAuthProviderConfigTransaction.php
--- a/src/applications/auth/storage/PhabricatorAuthProviderConfigTransaction.php
+++ b/src/applications/auth/storage/PhabricatorAuthProviderConfigTransaction.php
@@ -28,7 +28,7 @@
}
public function getApplicationTransactionType() {
- return PhabricatorPHIDConstants::PHID_TYPE_AUTH;
+ return PhabricatorAuthAuthProviderPHIDType::TYPECONST;
}
public function getApplicationTransactionCommentObject() {
diff --git a/src/applications/herald/controller/HeraldRuleViewController.php b/src/applications/herald/controller/HeraldRuleViewController.php
--- a/src/applications/herald/controller/HeraldRuleViewController.php
+++ b/src/applications/herald/controller/HeraldRuleViewController.php
@@ -51,7 +51,9 @@
->setHeader($header)
->addPropertyList($properties);
- $timeline = $this->buildTimeline($rule);
+ $timeline = $this->buildTransactionTimeline(
+ $rule,
+ new HeraldTransactionQuery());
return $this->buildApplicationPage(
array(
@@ -158,31 +160,4 @@
return $view;
}
- private function buildTimeline(HeraldRule $rule) {
- $viewer = $this->getRequest()->getUser();
-
- $xactions = id(new HeraldTransactionQuery())
- ->setViewer($viewer)
- ->withObjectPHIDs(array($rule->getPHID()))
- ->needComments(true)
- ->execute();
-
- $engine = id(new PhabricatorMarkupEngine())
- ->setViewer($viewer);
- foreach ($xactions as $xaction) {
- if ($xaction->getComment()) {
- $engine->addObject(
- $xaction->getComment(),
- PhabricatorApplicationTransactionComment::MARKUP_FIELD_COMMENT);
- }
- }
- $engine->process();
-
- return id(new PhabricatorApplicationTransactionView())
- ->setUser($viewer)
- ->setObjectPHID($rule->getPHID())
- ->setTransactions($xactions)
- ->setMarkupEngine($engine);
- }
-
}
diff --git a/src/applications/herald/storage/HeraldRule.php b/src/applications/herald/storage/HeraldRule.php
--- a/src/applications/herald/storage/HeraldRule.php
+++ b/src/applications/herald/storage/HeraldRule.php
@@ -2,6 +2,7 @@
final class HeraldRule extends HeraldDAO
implements
+ PhabricatorApplicationTransactionInterface,
PhabricatorFlaggableInterface,
PhabricatorPolicyInterface,
PhabricatorDestructibleInterface {
@@ -264,6 +265,19 @@
return sprintf('~%d%010d', $type_order, $this->getID());
}
+/* -( PhabricatorApplicationTransactionInterface )------------------------- */
+
+ public function getApplicationTransactionEditor() {
+ return new HeraldRuleEditor();
+ }
+
+ public function getApplicationTransactionObject() {
+ return $this;
+ }
+
+ public function getApplicationTransactionTemplate() {
+ return new HeraldRuleTransaction();
+ }
/* -( PhabricatorPolicyInterface )----------------------------------------- */
diff --git a/src/applications/phid/PhabricatorPHIDConstants.php b/src/applications/phid/PhabricatorPHIDConstants.php
--- a/src/applications/phid/PhabricatorPHIDConstants.php
+++ b/src/applications/phid/PhabricatorPHIDConstants.php
@@ -11,7 +11,6 @@
const PHID_TYPE_XCMT = 'XCMT';
- const PHID_TYPE_AUTH = 'AUTH';
const PHID_TYPE_XOBJ = 'XOBJ';
const PHID_TYPE_VOID = 'VOID';
diff --git a/src/applications/slowvote/controller/PhabricatorSlowvotePollController.php b/src/applications/slowvote/controller/PhabricatorSlowvotePollController.php
--- a/src/applications/slowvote/controller/PhabricatorSlowvotePollController.php
+++ b/src/applications/slowvote/controller/PhabricatorSlowvotePollController.php
@@ -54,7 +54,9 @@
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb('V'.$poll->getID());
- $xactions = $this->buildTransactions($poll);
+ $timeline = $this->buildTransactionTimeline(
+ $poll,
+ new PhabricatorSlowvoteTransactionQuery());
$add_comment = $this->buildCommentForm($poll);
$object_box = id(new PHUIObjectBoxView())
@@ -71,7 +73,7 @@
'class' => 'mlt mml mmr',
),
$poll_view),
- $xactions,
+ $timeline,
$add_comment,
),
array(
@@ -140,34 +142,6 @@
return $view;
}
- private function buildTransactions(PhabricatorSlowvotePoll $poll) {
- $viewer = $this->getRequest()->getUser();
-
- $xactions = id(new PhabricatorSlowvoteTransactionQuery())
- ->setViewer($viewer)
- ->withObjectPHIDs(array($poll->getPHID()))
- ->execute();
-
- $engine = id(new PhabricatorMarkupEngine())
- ->setViewer($viewer);
- foreach ($xactions as $xaction) {
- if ($xaction->getComment()) {
- $engine->addObject(
- $xaction->getComment(),
- PhabricatorApplicationTransactionComment::MARKUP_FIELD_COMMENT);
- }
- }
- $engine->process();
-
- $timeline = id(new PhabricatorApplicationTransactionView())
- ->setUser($viewer)
- ->setObjectPHID($poll->getPHID())
- ->setTransactions($xactions)
- ->setMarkupEngine($engine);
-
- return $timeline;
- }
-
private function buildCommentForm(PhabricatorSlowvotePoll $poll) {
$viewer = $this->getRequest()->getUser();
diff --git a/src/applications/slowvote/storage/PhabricatorSlowvotePoll.php b/src/applications/slowvote/storage/PhabricatorSlowvotePoll.php
--- a/src/applications/slowvote/storage/PhabricatorSlowvotePoll.php
+++ b/src/applications/slowvote/storage/PhabricatorSlowvotePoll.php
@@ -2,6 +2,7 @@
final class PhabricatorSlowvotePoll extends PhabricatorSlowvoteDAO
implements
+ PhabricatorApplicationTransactionInterface,
PhabricatorPolicyInterface,
PhabricatorSubscribableInterface,
PhabricatorFlaggableInterface,
@@ -103,6 +104,22 @@
}
+/* -( PhabricatorApplicationTransactionInterface )------------------------- */
+
+
+ public function getApplicationTransactionEditor() {
+ return new PhabricatorSlowvoteEditor();
+ }
+
+ public function getApplicationTransactionObject() {
+ return $this;
+ }
+
+ public function getApplicationTransactionTemplate() {
+ return new PhabricatorSlowvoteTransaction();
+ }
+
+
/* -( PhabricatorPolicyInterface )----------------------------------------- */
diff --git a/src/applications/transactions/view/PhabricatorApplicationTransactionView.php b/src/applications/transactions/view/PhabricatorApplicationTransactionView.php
--- a/src/applications/transactions/view/PhabricatorApplicationTransactionView.php
+++ b/src/applications/transactions/view/PhabricatorApplicationTransactionView.php
@@ -67,6 +67,10 @@
return $this;
}
+ public function getTransactions() {
+ return $this->transactions;
+ }
+
public function setShouldTerminate($term) {
$this->shouldTerminate = $term;
return $this;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Nov 11, 2:20 PM (1 w, 15 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6733566
Default Alt Text
D10921.diff (19 KB)
Attached To
Mode
D10921: Transactions - deploy buildTransactionTimeline against a few more applications
Attached
Detach File
Event Timeline
Log In to Comment