diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index a549dd55f2..0a6a3e3e24 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -6784,6 +6784,7 @@ phutil_register_library_map(array( 'PhabricatorPolicyInterface', 'PhabricatorApplicationTransactionInterface', 'PhabricatorCustomFieldInterface', + 'PhabricatorDestructibleInterface', ), 'PhabricatorOwnersPackageDatasource' => 'PhabricatorTypeaheadDatasource', 'PhabricatorOwnersPackageEditEngine' => 'PhabricatorEditEngine', diff --git a/src/applications/owners/storage/PhabricatorOwnersPackage.php b/src/applications/owners/storage/PhabricatorOwnersPackage.php index 09e2a3be26..f4ae31b3b6 100644 --- a/src/applications/owners/storage/PhabricatorOwnersPackage.php +++ b/src/applications/owners/storage/PhabricatorOwnersPackage.php @@ -5,7 +5,8 @@ final class PhabricatorOwnersPackage implements PhabricatorPolicyInterface, PhabricatorApplicationTransactionInterface, - PhabricatorCustomFieldInterface { + PhabricatorCustomFieldInterface, + PhabricatorDestructibleInterface { protected $name; protected $originalName; @@ -338,4 +339,30 @@ final class PhabricatorOwnersPackage return $this; } + +/* -( PhabricatorDestructibleInterface )----------------------------------- */ + + + public function destroyObjectPermanently( + PhabricatorDestructionEngine $engine) { + + $this->openTransaction(); + $conn_w = $this->establishConnection('w'); + + queryfx( + $conn_w, + 'DELETE FROM %T WHERE packageID = %d', + id(new PhabricatorOwnersPath())->getTableName(), + $this->getID()); + + queryfx( + $conn_w, + 'DELETE FROM %T WHERE packageID = %d', + id(new PhabricatorOwnersOwner())->getTableName(), + $this->getID()); + + $this->delete(); + $this->saveTransaction(); + } + } diff --git a/src/infrastructure/internationalization/translation/PhabricatorUSEnglishTranslation.php b/src/infrastructure/internationalization/translation/PhabricatorUSEnglishTranslation.php index 3c23491a4f..79c9ef567a 100644 --- a/src/infrastructure/internationalization/translation/PhabricatorUSEnglishTranslation.php +++ b/src/infrastructure/internationalization/translation/PhabricatorUSEnglishTranslation.php @@ -1501,6 +1501,11 @@ final class PhabricatorUSEnglishTranslation '%s updated %s for %s, added %s: %s; removed %s: %s.' => '%s updated %s for %s, added: %5$s; removed; %7$s.', + + 'Permanently destroyed %s object(s).' => array( + 'Permanently destroyed %s object.', + 'Permanently destroyed %s objects.', + ), ); }