protected function applyCustomInternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction) { switch ($xaction->getTransactionType()) { case HeraldRuleTransaction::TYPE_DISABLE: return $object->setIsDisabled($xaction->getNewValue()); } }
protected function applyCustomInternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction) { switch ($xaction->getTransactionType()) { case DrydockBlueprintTransaction::TYPE_NAME: $object->setBlueprintName($xaction->getNewValue()); return; case DrydockBlueprintTransaction::TYPE_DISABLED: $object->setIsDisabled((int) $xaction->getNewValue()); return; } return parent::applyCustomInternalTransaction($object, $xaction); }
protected function applyCustomInternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction) { switch ($xaction->getTransactionType()) { case AlmanacBindingTransaction::TYPE_INTERFACE: $interface = id(new AlmanacInterfaceQuery())->setViewer($this->requireActor())->withPHIDs(array($xaction->getNewValue()))->executeOne(); $object->setDevicePHID($interface->getDevicePHID()); $object->setInterfacePHID($interface->getPHID()); return; case AlmanacBindingTransaction::TYPE_DISABLE: $object->setIsDisabled($xaction->getNewValue()); return; } return parent::applyCustomInternalTransaction($object, $xaction); }
protected function applyCustomInternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction) { switch ($xaction->getTransactionType()) { case PhabricatorOAuthServerTransaction::TYPE_NAME: $object->setName($xaction->getNewValue()); return; case PhabricatorOAuthServerTransaction::TYPE_REDIRECT_URI: $object->setRedirectURI($xaction->getNewValue()); return; case PhabricatorOAuthServerTransaction::TYPE_DISABLED: $object->setIsDisabled($xaction->getNewValue()); return; } return parent::applyCustomInternalTransaction($object, $xaction); }
protected function applyCustomInternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction) { switch ($xaction->getTransactionType()) { case HeraldRuleTransaction::TYPE_DISABLE: return $object->setIsDisabled($xaction->getNewValue()); case HeraldRuleTransaction::TYPE_NAME: return $object->setName($xaction->getNewValue()); case HeraldRuleTransaction::TYPE_EDIT: $new_state = id(new HeraldRuleSerializer())->deserializeRuleComponents($xaction->getNewValue()); $object->setMustMatchAll((int) $new_state['match_all']); $object->attachConditions($new_state['conditions']); $object->attachActions($new_state['actions']); $object->setRepetitionPolicy(HeraldRepetitionPolicyConfig::toInt($new_state['repetition_policy'])); return $object; } }
protected function applyCustomInternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction) { switch ($xaction->getTransactionType()) { case PhabricatorMacroTransaction::TYPE_NAME: $object->setName($xaction->getNewValue()); break; case PhabricatorMacroTransaction::TYPE_DISABLED: $object->setIsDisabled($xaction->getNewValue()); break; case PhabricatorMacroTransaction::TYPE_FILE: $object->setFilePHID($xaction->getNewValue()); break; case PhabricatorMacroTransaction::TYPE_AUDIO: $object->setAudioPHID($xaction->getNewValue()); break; case PhabricatorMacroTransaction::TYPE_AUDIO_BEHAVIOR: $object->setAudioBehavior($xaction->getNewValue()); break; } }
protected function applyCustomInternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction) { switch ($xaction->getTransactionType()) { case PhabricatorEditEngineConfigurationTransaction::TYPE_NAME: $object->setName($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_PREAMBLE: $object->setPreamble($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_ORDER: $object->setFieldOrder($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_DEFAULT: $field_key = $xaction->getMetadataValue('field.key'); $object->setFieldDefault($field_key, $xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_LOCKS: $object->setFieldLocks($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_DEFAULTCREATE: $object->setIsDefault($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_DISABLE: $object->setIsDisabled($xaction->getNewValue()); return; } return parent::applyCustomInternalTransaction($object, $xaction); }
protected function applyCustomInternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction) { switch ($xaction->getTransactionType()) { case PhabricatorRepositoryURITransaction::TYPE_URI: if (!$this->getIsNewObject()) { $old_uri = $object->getEffectiveURI(); } else { $old_uri = null; // When creating a URI via the API, we may not have processed the // repository transaction yet. Attach the repository here to make // sure we have it for the calls below. if ($this->repository) { $object->attachRepository($this->repository); } } $object->setURI($xaction->getNewValue()); // If we've changed the domain or protocol of the URI, remove the // current credential. This improves behavior in several cases: // If a user switches between protocols with different credential // types, like HTTP and SSH, the old credential won't be valid anyway. // It's cleaner to remove it than leave a bad credential in place. // If a user switches hosts, the old credential is probably not // correct (and potentially confusing/misleading). Removing it forces // users to double check that they have the correct credentials. // If an attacker can't see a symmetric credential like a username and // password, they could still potentially capture it by changing the // host for a URI that uses it to `evil.com`, a server they control, // then observing the requests. Removing the credential prevents this // kind of escalation. // Since port and path changes are less likely to fall among these // cases, they don't trigger a credential wipe. $new_uri = $object->getEffectiveURI(); if ($old_uri) { $new_proto = $old_uri->getProtocol() != $new_uri->getProtocol(); $new_domain = $old_uri->getDomain() != $new_uri->getDomain(); if ($new_proto || $new_domain) { $object->setCredentialPHID(null); } } break; case PhabricatorRepositoryURITransaction::TYPE_IO: $object->setIOType($xaction->getNewValue()); break; case PhabricatorRepositoryURITransaction::TYPE_DISPLAY: $object->setDisplayType($xaction->getNewValue()); break; case PhabricatorRepositoryURITransaction::TYPE_REPOSITORY: $object->setRepositoryPHID($xaction->getNewValue()); $object->attachRepository($this->repository); break; case PhabricatorRepositoryURITransaction::TYPE_CREDENTIAL: $object->setCredentialPHID($xaction->getNewValue()); break; case PhabricatorRepositoryURITransaction::TYPE_DISABLE: $object->setIsDisabled($xaction->getNewValue()); break; } }