Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15418195
D19328.id46235.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
9 KB
Referenced Files
None
Subscribers
None
D19328.id46235.diff
View Options
diff --git a/src/applications/almanac/editor/AlmanacDeviceEditor.php b/src/applications/almanac/editor/AlmanacDeviceEditor.php
--- a/src/applications/almanac/editor/AlmanacDeviceEditor.php
+++ b/src/applications/almanac/editor/AlmanacDeviceEditor.php
@@ -11,7 +11,7 @@
$types = parent::getTransactionTypes();
$types[] = AlmanacDeviceTransaction::TYPE_NAME;
- $types[] = AlmanacDeviceTransaction::TYPE_INTERFACE;
+
$types[] = PhabricatorTransactions::TYPE_VIEW_POLICY;
$types[] = PhabricatorTransactions::TYPE_EDIT_POLICY;
@@ -35,7 +35,6 @@
switch ($xaction->getTransactionType()) {
case AlmanacDeviceTransaction::TYPE_NAME:
- case AlmanacDeviceTransaction::TYPE_INTERFACE:
return $xaction->getNewValue();
}
@@ -50,8 +49,6 @@
case AlmanacDeviceTransaction::TYPE_NAME:
$object->setName($xaction->getNewValue());
return;
- case AlmanacDeviceTransaction::TYPE_INTERFACE:
- return;
}
return parent::applyCustomInternalTransaction($object, $xaction);
@@ -64,37 +61,6 @@
switch ($xaction->getTransactionType()) {
case AlmanacDeviceTransaction::TYPE_NAME:
return;
- case AlmanacDeviceTransaction::TYPE_INTERFACE:
- $old = $xaction->getOldValue();
- if ($old) {
- $interface = id(new AlmanacInterfaceQuery())
- ->setViewer($this->requireActor())
- ->withIDs(array($old['id']))
- ->executeOne();
- if (!$interface) {
- throw new Exception(pht('Unable to load interface!'));
- }
- } else {
- $interface = AlmanacInterface::initializeNewInterface()
- ->setDevicePHID($object->getPHID());
- }
-
- $new = $xaction->getNewValue();
- if ($new) {
- $interface
- ->setNetworkPHID($new['networkPHID'])
- ->setAddress($new['address'])
- ->setPort((int)$new['port']);
-
- if (idx($new, 'phid')) {
- $interface->setPHID($new['phid']);
- }
-
- $interface->save();
- } else {
- $interface->delete();
- }
- return;
}
return parent::applyCustomExternalTransaction($object, $xaction);
@@ -180,153 +146,6 @@
}
break;
- case AlmanacDeviceTransaction::TYPE_INTERFACE:
- // We want to make sure that all the affected networks are visible to
- // the actor, any edited interfaces exist, and that the actual address
- // components are valid.
-
- $network_phids = array();
- foreach ($xactions as $xaction) {
- $old = $xaction->getOldValue();
- $new = $xaction->getNewValue();
- if ($old) {
- $network_phids[] = $old['networkPHID'];
- }
- if ($new) {
- $network_phids[] = $new['networkPHID'];
-
- $address = $new['address'];
- if (!strlen($address)) {
- $error = new PhabricatorApplicationTransactionValidationError(
- $type,
- pht('Invalid'),
- pht('Interfaces must have an address.'),
- $xaction);
- $errors[] = $error;
- } else {
- // TODO: Validate addresses, but IPv6 addresses are not trivial
- // to validate.
- }
-
- $port = $new['port'];
- if (!strlen($port)) {
- $error = new PhabricatorApplicationTransactionValidationError(
- $type,
- pht('Invalid'),
- pht('Interfaces must have a port.'),
- $xaction);
- $errors[] = $error;
- } else if ((int)$port < 1 || (int)$port > 65535) {
- $error = new PhabricatorApplicationTransactionValidationError(
- $type,
- pht('Invalid'),
- pht(
- 'Port numbers must be between 1 and 65535, inclusive.'),
- $xaction);
- $errors[] = $error;
- }
-
- $phid = idx($new, 'phid');
- if ($phid) {
- $interface_phid_type = AlmanacInterfacePHIDType::TYPECONST;
- if (phid_get_type($phid) !== $interface_phid_type) {
- $error = new PhabricatorApplicationTransactionValidationError(
- $type,
- pht('Invalid'),
- pht(
- 'Precomputed interface PHIDs must be of type '.
- 'AlmanacInterfacePHIDType.'),
- $xaction);
- $errors[] = $error;
- }
- }
- }
- }
-
- if ($network_phids) {
- $networks = id(new AlmanacNetworkQuery())
- ->setViewer($this->requireActor())
- ->withPHIDs($network_phids)
- ->execute();
- $networks = mpull($networks, null, 'getPHID');
- } else {
- $networks = array();
- }
-
- $addresses = array();
- foreach ($xactions as $xaction) {
- $old = $xaction->getOldValue();
- if ($old) {
- $network = idx($networks, $old['networkPHID']);
- if (!$network) {
- $error = new PhabricatorApplicationTransactionValidationError(
- $type,
- pht('Invalid'),
- pht(
- 'You can not edit an interface which belongs to a '.
- 'nonexistent or restricted network.'),
- $xaction);
- $errors[] = $error;
- }
-
- $addresses[] = $old['id'];
- }
-
- $new = $xaction->getNewValue();
- if ($new) {
- $network = idx($networks, $new['networkPHID']);
- if (!$network) {
- $error = new PhabricatorApplicationTransactionValidationError(
- $type,
- pht('Invalid'),
- pht(
- 'You can not add an interface on a nonexistent or '.
- 'restricted network.'),
- $xaction);
- $errors[] = $error;
- }
- }
- }
-
- if ($addresses) {
- $interfaces = id(new AlmanacInterfaceQuery())
- ->setViewer($this->requireActor())
- ->withDevicePHIDs(array($object->getPHID()))
- ->withIDs($addresses)
- ->execute();
- $interfaces = mpull($interfaces, null, 'getID');
- } else {
- $interfaces = array();
- }
-
- foreach ($xactions as $xaction) {
- $old = $xaction->getOldValue();
- if ($old) {
- $interface = idx($interfaces, $old['id']);
- if (!$interface) {
- $error = new PhabricatorApplicationTransactionValidationError(
- $type,
- pht('Invalid'),
- pht('You can not edit an invalid or restricted interface.'),
- $xaction);
- $errors[] = $error;
- continue;
- }
-
- $new = $xaction->getNewValue();
- if (!$new) {
- if ($interface->loadIsInUse()) {
- $error = new PhabricatorApplicationTransactionValidationError(
- $type,
- pht('In Use'),
- pht('You can not delete an interface which is still in use.'),
- $xaction);
- $errors[] = $error;
- }
- }
- }
- }
- break;
}
return $errors;
diff --git a/src/applications/almanac/storage/AlmanacDeviceTransaction.php b/src/applications/almanac/storage/AlmanacDeviceTransaction.php
--- a/src/applications/almanac/storage/AlmanacDeviceTransaction.php
+++ b/src/applications/almanac/storage/AlmanacDeviceTransaction.php
@@ -4,7 +4,6 @@
extends AlmanacTransaction {
const TYPE_NAME = 'almanac:device:name';
- const TYPE_INTERFACE = 'almanac:device:interface';
public function getApplicationName() {
return 'almanac';
@@ -18,26 +17,6 @@
return null;
}
- public function getRequiredHandlePHIDs() {
- $phids = parent::getRequiredHandlePHIDs();
-
- $old = $this->getOldValue();
- $new = $this->getNewValue();
-
- switch ($this->getTransactionType()) {
- case self::TYPE_INTERFACE:
- if ($old) {
- $phids[] = $old['networkPHID'];
- }
- if ($new) {
- $phids[] = $new['networkPHID'];
- }
- break;
- }
-
- return $phids;
- }
-
public function getTitle() {
$author_phid = $this->getAuthorPHID();
@@ -58,43 +37,9 @@
$new);
}
break;
- case self::TYPE_INTERFACE:
- if ($old && $new) {
- return pht(
- '%s changed interface %s on this device to %s.',
- $this->renderHandleLink($author_phid),
- $this->describeInterface($old),
- $this->describeInterface($new));
- } else if ($old) {
- return pht(
- '%s removed the interface %s from this device.',
- $this->renderHandleLink($author_phid),
- $this->describeInterface($old));
- } else if ($new) {
- return pht(
- '%s added the interface %s to this device.',
- $this->renderHandleLink($author_phid),
- $this->describeInterface($new));
- }
}
return parent::getTitle();
}
- public function shouldGenerateOldValue() {
- switch ($this->getTransactionType()) {
- case self::TYPE_INTERFACE:
- return false;
- }
- return parent::shouldGenerateOldValue();
- }
-
- private function describeInterface(array $info) {
- return pht(
- '%s:%s (%s)',
- $info['address'],
- $info['port'],
- $this->renderHandleLink($info['networkPHID']));
- }
-
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Mar 21, 9:28 PM (2 d, 22 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7710316
Default Alt Text
D19328.id46235.diff (9 KB)
Attached To
Mode
D19328: Remove TYPE_INTERFACE transaction from Almanac Device
Attached
Detach File
Event Timeline
Log In to Comment