Merge pull request #8094 from annando/deletecontact

Ensure that deleted contacts are really removed
This commit is contained in:
Philipp 2020-01-11 18:40:46 +01:00 committed by GitHub
commit eba46e786a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 2 deletions

View File

@ -84,6 +84,8 @@ class Cron
// check upstream version?
Worker::add(PRIORITY_LOW, 'CheckVersion');
self::checkdeletedContacts();
Config::set('system', 'last_expire_day', $d2);
}
@ -121,6 +123,19 @@ class Cron
return;
}
/**
* Checks for contacts that are about to be deleted and ensures that they are removed.
* This should be done automatically in the "remove" function. This here is a cleanup job.
*/
private static function checkdeletedContacts()
{
$contacts = DBA::select('contact', ['id'], ['deleted' => true]);
while ($contact = DBA::fetch($contacts)) {
Worker::add(PRIORITY_MEDIUM, 'RemoveContact', $contact['id']);
}
DBA::close($contacts);
}
/**
* @brief Update public contacts
* @throws \Friendica\Network\HTTPException\InternalServerErrorException

View File

@ -13,8 +13,7 @@ class RemoveContact {
public static function execute($id) {
// Only delete if the contact is to be deleted
$condition = ['network' => Protocol::PHANTOM, 'id' => $id];
$contact = DBA::selectFirst('contact', ['uid'], $condition);
$contact = DBA::selectFirst('contact', ['uid'], ['deleted' => true]);
if (!DBA::isResult($contact)) {
return;
}