1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-02-03 02:18:24 +01:00
phorge-phorge/src/applications/tokens/engineextension/PhabricatorTokenDestructionEngineExtension.php
epriestley 4bba3fd4c1 Fully modularize DestructionEngine
Summary: Ref T9979. Convert all DestructionEngine behaviors to extensions.

Test Plan:
{F1033244}

Destroyed an object, verifying:

  - Herald transcripts were destroyed;
  - edges were destroyed;
  - flags were destroyed;
  - tokens were destroyed;
  - transactions were destroyed;
  - worker tasks were cancelled.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T9979

Differential Revision: https://secure.phabricator.com/D14832
2015-12-21 17:03:44 -08:00

31 lines
658 B
PHP

<?php
final class PhabricatorTokenDestructionEngineExtension
extends PhabricatorDestructionEngineExtension {
const EXTENSIONKEY = 'tokens';
public function getExtensionName() {
return pht('Tokens');
}
public function canDestroyObject(
PhabricatorDestructionEngine $engine,
$object) {
return ($object instanceof PhabricatorTokenReceiverInterface);
}
public function destroyObject(
PhabricatorDestructionEngine $engine,
$object) {
$tokens = id(new PhabricatorTokenGiven())->loadAllWhere(
'objectPHID = %s',
$object->getPHID());
foreach ($tokens as $token) {
$token->delete();
}
}
}