Changeset View
Changeset View
Standalone View
Standalone View
src/applications/almanac/editor/AlmanacServiceEditor.php
<?php | <?php | ||||
final class AlmanacServiceEditor | final class AlmanacServiceEditor | ||||
extends AlmanacEditor { | extends AlmanacEditor { | ||||
public function getEditorObjectsDescription() { | public function getEditorObjectsDescription() { | ||||
return pht('Almanac Service'); | return pht('Almanac Service'); | ||||
} | } | ||||
public function getTransactionTypes() { | public function getTransactionTypes() { | ||||
$types = parent::getTransactionTypes(); | $types = parent::getTransactionTypes(); | ||||
$types[] = AlmanacServiceTransaction::TYPE_NAME; | $types[] = AlmanacServiceTransaction::TYPE_NAME; | ||||
$types[] = AlmanacServiceTransaction::TYPE_LOCK; | |||||
$types[] = PhabricatorTransactions::TYPE_VIEW_POLICY; | $types[] = PhabricatorTransactions::TYPE_VIEW_POLICY; | ||||
$types[] = PhabricatorTransactions::TYPE_EDIT_POLICY; | $types[] = PhabricatorTransactions::TYPE_EDIT_POLICY; | ||||
return $types; | return $types; | ||||
} | } | ||||
protected function getCustomTransactionOldValue( | protected function getCustomTransactionOldValue( | ||||
PhabricatorLiskDAO $object, | PhabricatorLiskDAO $object, | ||||
PhabricatorApplicationTransaction $xaction) { | PhabricatorApplicationTransaction $xaction) { | ||||
switch ($xaction->getTransactionType()) { | switch ($xaction->getTransactionType()) { | ||||
case AlmanacServiceTransaction::TYPE_NAME: | case AlmanacServiceTransaction::TYPE_NAME: | ||||
return $object->getName(); | return $object->getName(); | ||||
case AlmanacServiceTransaction::TYPE_LOCK: | |||||
return (bool)$object->getIsLocked(); | |||||
} | } | ||||
return parent::getCustomTransactionOldValue($object, $xaction); | return parent::getCustomTransactionOldValue($object, $xaction); | ||||
} | } | ||||
protected function getCustomTransactionNewValue( | protected function getCustomTransactionNewValue( | ||||
PhabricatorLiskDAO $object, | PhabricatorLiskDAO $object, | ||||
PhabricatorApplicationTransaction $xaction) { | PhabricatorApplicationTransaction $xaction) { | ||||
switch ($xaction->getTransactionType()) { | switch ($xaction->getTransactionType()) { | ||||
case AlmanacServiceTransaction::TYPE_NAME: | case AlmanacServiceTransaction::TYPE_NAME: | ||||
return $xaction->getNewValue(); | return $xaction->getNewValue(); | ||||
case AlmanacServiceTransaction::TYPE_LOCK: | |||||
return (bool)$xaction->getNewValue(); | |||||
} | } | ||||
return parent::getCustomTransactionNewValue($object, $xaction); | return parent::getCustomTransactionNewValue($object, $xaction); | ||||
} | } | ||||
protected function applyCustomInternalTransaction( | protected function applyCustomInternalTransaction( | ||||
PhabricatorLiskDAO $object, | PhabricatorLiskDAO $object, | ||||
PhabricatorApplicationTransaction $xaction) { | PhabricatorApplicationTransaction $xaction) { | ||||
switch ($xaction->getTransactionType()) { | switch ($xaction->getTransactionType()) { | ||||
case AlmanacServiceTransaction::TYPE_NAME: | case AlmanacServiceTransaction::TYPE_NAME: | ||||
$object->setName($xaction->getNewValue()); | $object->setName($xaction->getNewValue()); | ||||
return; | return; | ||||
case AlmanacServiceTransaction::TYPE_LOCK: | |||||
$object->setIsLocked((int)$xaction->getNewValue()); | |||||
return; | |||||
} | } | ||||
return parent::applyCustomInternalTransaction($object, $xaction); | return parent::applyCustomInternalTransaction($object, $xaction); | ||||
} | } | ||||
protected function applyCustomExternalTransaction( | protected function applyCustomExternalTransaction( | ||||
PhabricatorLiskDAO $object, | PhabricatorLiskDAO $object, | ||||
PhabricatorApplicationTransaction $xaction) { | PhabricatorApplicationTransaction $xaction) { | ||||
switch ($xaction->getTransactionType()) { | switch ($xaction->getTransactionType()) { | ||||
case AlmanacServiceTransaction::TYPE_NAME: | case AlmanacServiceTransaction::TYPE_NAME: | ||||
return; | return; | ||||
case AlmanacServiceTransaction::TYPE_LOCK: | |||||
$service = id(new AlmanacServiceQuery()) | |||||
->setViewer(PhabricatorUser::getOmnipotentUser()) | |||||
->withPHIDs(array($object->getPHID())) | |||||
->needBindings(true) | |||||
->executeOne(); | |||||
$devices = array(); | |||||
foreach ($service->getBindings() as $binding) { | |||||
$device = $binding->getInterface()->getDevice(); | |||||
$devices[$device->getPHID()] = $device; | |||||
} | |||||
foreach ($devices as $device) { | |||||
$device->rebuildDeviceLocks(); | |||||
} | |||||
return; | |||||
} | } | ||||
return parent::applyCustomExternalTransaction($object, $xaction); | return parent::applyCustomExternalTransaction($object, $xaction); | ||||
} | } | ||||
protected function validateTransaction( | protected function validateTransaction( | ||||
PhabricatorLiskDAO $object, | PhabricatorLiskDAO $object, | ||||
$type, | $type, | ||||
▲ Show 20 Lines • Show All 84 Lines • Show Last 20 Lines |