@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final class DiffusionRepositoryIdentityDestructionEngineExtension
4 extends PhabricatorDestructionEngineExtension {
5
6 const EXTENSIONKEY = 'repository-identities';
7
8 public function getExtensionName() {
9 return pht('Repository Identities');
10 }
11
12 public function didDestroyObject(
13 PhabricatorDestructionEngine $engine,
14 $object) {
15
16 // When users or email addresses are destroyed, queue a task to update
17 // any repository identities that are associated with them. See T13444.
18
19 $related_phids = array();
20 $email_addresses = array();
21
22 if ($object instanceof PhabricatorUser) {
23 $related_phids[] = $object->getPHID();
24 }
25
26 if ($object instanceof PhabricatorUserEmail) {
27 $email_addresses[] = $object->getAddress();
28 }
29
30 if ($related_phids || $email_addresses) {
31 PhabricatorWorker::scheduleTask(
32 'PhabricatorRepositoryIdentityChangeWorker',
33 array(
34 'relatedPHIDs' => $related_phids,
35 'emailAddresses' => $email_addresses,
36 ));
37 }
38 }
39
40}