From 531ef6e6e2a7c5968036ce1e7b8a0caaca7accea Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 20 Mar 2021 09:56:35 +0000 Subject: [PATCH] Issue 10050: Avoid creating new contacts for expired users --- src/Model/Contact.php | 5 +++-- src/Model/User.php | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 8b28575edb..b0b5fcc91b 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -571,7 +571,8 @@ class Contact return true; } - $user = DBA::selectFirst('user', ['uid', 'username', 'nickname', 'pubkey', 'prvkey'], ['uid' => $uid]); + $user = DBA::selectFirst('user', ['uid', 'username', 'nickname', 'pubkey', 'prvkey'], + ['uid' => $uid, 'account_expired' => false]); if (!DBA::isResult($user)) { return false; } @@ -624,7 +625,7 @@ class Contact } $fields = ['nickname', 'page-flags', 'account-type', 'prvkey', 'pubkey']; - $user = DBA::selectFirst('user', $fields, ['uid' => $uid]); + $user = DBA::selectFirst('user', $fields, ['uid' => $uid, 'account_expired' => false]); if (!DBA::isResult($user)) { return; } diff --git a/src/Model/User.php b/src/Model/User.php index 7204fd0ac8..278b541fa8 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -399,7 +399,7 @@ class User return false; } - if (!$repairMissing) { + if (!$repairMissing || $owner['account_expired']) { return $owner; } @@ -1367,6 +1367,9 @@ class User // unique), so it cannot be re-registered in the future. DBA::insert('userd', ['username' => $user['nickname']]); + // Remove all personal settings, especially connector settings + DBA::delete('pconfig', ['uid' => $uid]); + // The user and related data will be deleted in Friendica\Worker\ExpireAndRemoveUsers DBA::update('user', ['account_removed' => true, 'account_expires_on' => DateTimeFormat::utc('now + 7 day')], ['uid' => $uid]); Worker::add(PRIORITY_HIGH, 'Notifier', Delivery::REMOVAL, $uid);