mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-10 08:52:39 +01:00
Audit - fix erroneous mentions of tasks, etc via commit message
Summary: we don't want to mention these phids... when expanding transactions, build the unmnentionable map and make it so. slightly hairy due to how the editor framework works, but overall i think this is the right place to put these hooks. Fixes T6331. Test Plan: made a commit with a commit message that had fixes, refs, depends on, and auditors and saw no erroneous mentions Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin, chad, epriestley Maniphest Tasks: T6331 Differential Revision: https://secure.phabricator.com/D10721
This commit is contained in:
parent
01e0b08fce
commit
d9dd098e40
1 changed files with 59 additions and 0 deletions
|
@ -321,6 +321,7 @@ final class PhabricatorAuditEditor
|
||||||
$object);
|
$object);
|
||||||
if ($request) {
|
if ($request) {
|
||||||
$xactions[] = $request;
|
$xactions[] = $request;
|
||||||
|
$this->setUnmentionablePHIDMap($request->getNewValue());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -448,6 +449,64 @@ final class PhabricatorAuditEditor
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function expandCustomRemarkupBlockTransactions(
|
||||||
|
PhabricatorLiskDAO $object,
|
||||||
|
array $xactions,
|
||||||
|
$blocks,
|
||||||
|
PhutilMarkupEngine $engine) {
|
||||||
|
|
||||||
|
// we are only really trying to find unmentionable phids here...
|
||||||
|
// don't bother with this outside initial commit (i.e. create)
|
||||||
|
// transaction
|
||||||
|
$is_commit = false;
|
||||||
|
foreach ($xactions as $xaction) {
|
||||||
|
switch ($xaction->getTransactionType()) {
|
||||||
|
case PhabricatorAuditTransaction::TYPE_COMMIT:
|
||||||
|
$is_commit = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// "result" is always an array....
|
||||||
|
$result = array();
|
||||||
|
if (!$is_commit) {
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
$flat_blocks = array_mergev($blocks);
|
||||||
|
$huge_block = implode("\n\n", $flat_blocks);
|
||||||
|
$phid_map = array();
|
||||||
|
$phid_map[] = $this->getUnmentionablePHIDMap();
|
||||||
|
$monograms = array();
|
||||||
|
|
||||||
|
$task_refs = id(new ManiphestCustomFieldStatusParser())
|
||||||
|
->parseCorpus($huge_block);
|
||||||
|
foreach ($task_refs as $match) {
|
||||||
|
foreach ($match['monograms'] as $monogram) {
|
||||||
|
$monograms[] = $monogram;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$rev_refs = id(new DifferentialCustomFieldDependsOnParser())
|
||||||
|
->parseCorpus($huge_block);
|
||||||
|
foreach ($rev_refs as $match) {
|
||||||
|
foreach ($match['monograms'] as $monogram) {
|
||||||
|
$monograms[] = $monogram;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$objects = id(new PhabricatorObjectQuery())
|
||||||
|
->setViewer($this->getActor())
|
||||||
|
->withNames($monograms)
|
||||||
|
->execute();
|
||||||
|
$phid_map[] = mpull($objects, 'getPHID', 'getPHID');
|
||||||
|
$phid_map = array_mergev($phid_map);
|
||||||
|
$this->setUnmentionablePHIDMap($phid_map);
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
protected function shouldSendMail(
|
protected function shouldSendMail(
|
||||||
PhabricatorLiskDAO $object,
|
PhabricatorLiskDAO $object,
|
||||||
array $xactions) {
|
array $xactions) {
|
||||||
|
|
Loading…
Reference in a new issue