mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-24 07:42:40 +01:00
f7e8fa0764
Summary: Depends on D20040. Ref T13242. See PHI1039. See PHI873. Two reasonable cases have arisen recently where extending validation rules would help solve problems. We can do this in a pretty straightforward way with a standard extension pattern. Test Plan: Used this extension to keep ducks away from projects: ```lang=php <?php final class NoDucksEditorExtension extends PhabricatorEditorExtension { const EXTENSIONKEY = 'no.ducks'; public function getExtensionName() { return pht('No Ducks!'); } public function supportsObject( PhabricatorApplicationTransactionEditor $editor, PhabricatorApplicationTransactionInterface $object) { return ($object instanceof PhabricatorProject); } public function validateTransactions($object, array $xactions) { $errors = array(); $name_type = PhabricatorProjectNameTransaction::TRANSACTIONTYPE; $old_value = $object->getName(); foreach ($xactions as $xaction) { if ($xaction->getTransactionType() !== $name_type) { continue; } $new_value = $xaction->getNewValue(); if ($old_value === $new_value) { continue; } if (preg_match('/duck/i', $new_value)) { $errors[] = $this->newInvalidTransactionError( $xaction, pht('Project names must not contain the substring "duck".')); } } return $errors; } } ``` {F6162585} Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T13242 Differential Revision: https://secure.phabricator.com/D20041 |
||
---|---|---|
.. | ||
application | ||
bulk | ||
commentaction | ||
conduit | ||
constants | ||
controller | ||
data | ||
draft | ||
edges | ||
editengine | ||
editfield | ||
editor | ||
edittype | ||
engine | ||
engineextension | ||
error | ||
exception | ||
feed | ||
interface | ||
phid | ||
query | ||
replyhandler | ||
response | ||
storage | ||
typeahead | ||
view | ||
worker | ||
xaction |