mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-26 08:42:41 +01:00
Remove weird integration between Legalpad and the ExternalAccount table
Summary: Depends on D20107. Ref T6703. Legalpad currently inserts "email" records into the external account table, but they're never used for anything and nothing else references them. They also aren't necessary for anything important to work, and the only effect they have is making the UI say "External Account" instead of "None" under the "Account" column. In particular, the signatures still record the actual email address. Stop doing this, remove all the references, and destroy all the rows. (Long ago, Maniphest may also have done this, but no longer does. Nuance/Gatekeeper use a more modern and more suitable "ExternalObject" thing that I initially started adapting here before realizing that Legalpad doesn't actually care about this data.) Test Plan: Signed documents with an email address, saw signature reflected properly in UI. Grepped for other callsites. Reviewers: amckinley Reviewed By: amckinley Subscribers: PHID-OPKG-gm6ozazyms6q6i22gyam Maniphest Tasks: T6703 Differential Revision: https://secure.phabricator.com/D20108
This commit is contained in:
parent
9f5e6bee90
commit
f0364eef8a
5 changed files with 5 additions and 42 deletions
|
@ -0,0 +1,2 @@
|
|||
UPDATE {$NAMESPACE}_legalpad.legalpad_documentsignature
|
||||
SET signerPHID = NULL WHERE signerPHID LIKE 'PHID-XUSR-%';
|
2
resources/sql/autopatches/20190206.external.02.email.sql
Normal file
2
resources/sql/autopatches/20190206.external.02.email.sql
Normal file
|
@ -0,0 +1,2 @@
|
|||
DELETE FROM {$NAMESPACE}_user.user_externalaccount
|
||||
WHERE accountType = 'email';
|
|
@ -168,35 +168,4 @@ final class PhabricatorExternalAccountQuery
|
|||
return 'PhabricatorPeopleApplication';
|
||||
}
|
||||
|
||||
/**
|
||||
* Attempts to find an external account and if none exists creates a new
|
||||
* external account with a shiny new ID and PHID.
|
||||
*
|
||||
* NOTE: This function assumes the first item in various query parameters is
|
||||
* the correct value to use in creating a new external account.
|
||||
*/
|
||||
public function loadOneOrCreate() {
|
||||
$account = $this->executeOne();
|
||||
if (!$account) {
|
||||
$account = new PhabricatorExternalAccount();
|
||||
if ($this->accountIDs) {
|
||||
$account->setAccountID(reset($this->accountIDs));
|
||||
}
|
||||
if ($this->accountTypes) {
|
||||
$account->setAccountType(reset($this->accountTypes));
|
||||
}
|
||||
if ($this->accountDomains) {
|
||||
$account->setAccountDomain(reset($this->accountDomains));
|
||||
}
|
||||
if ($this->accountSecrets) {
|
||||
$account->setAccountSecret(reset($this->accountSecrets));
|
||||
}
|
||||
if ($this->userPHIDs) {
|
||||
$account->setUserPHID(reset($this->userPHIDs));
|
||||
}
|
||||
$account->save();
|
||||
}
|
||||
return $account;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -364,16 +364,6 @@ final class LegalpadDocumentSignController extends LegalpadController {
|
|||
if ($email_obj) {
|
||||
return $this->signInResponse();
|
||||
}
|
||||
$external_account = id(new PhabricatorExternalAccountQuery())
|
||||
->setViewer($viewer)
|
||||
->withAccountTypes(array('email'))
|
||||
->withAccountDomains(array($email->getDomainName()))
|
||||
->withAccountIDs(array($email->getAddress()))
|
||||
->loadOneOrCreate();
|
||||
if ($external_account->getUserPHID()) {
|
||||
return $this->signInResponse();
|
||||
}
|
||||
$signer_phid = $external_account->getPHID();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -226,7 +226,7 @@ final class LegalpadDocumentSignatureSearchEngine
|
|||
$handles[$document->getPHID()]->renderLink(),
|
||||
$signer_phid
|
||||
? $handles[$signer_phid]->renderLink()
|
||||
: null,
|
||||
: phutil_tag('em', array(), pht('None')),
|
||||
$name,
|
||||
phutil_tag(
|
||||
'a',
|
||||
|
|
Loading…
Reference in a new issue