mirror of
https://github.com/friendica/friendica
synced 2024-12-22 12:29:47 +01:00
Issue 10050: Avoid creating new contacts for expired users
This commit is contained in:
parent
f75dbdab5b
commit
531ef6e6e2
2 changed files with 7 additions and 3 deletions
|
@ -571,7 +571,8 @@ class Contact
|
||||||
return true;
|
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)) {
|
if (!DBA::isResult($user)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -624,7 +625,7 @@ class Contact
|
||||||
}
|
}
|
||||||
|
|
||||||
$fields = ['nickname', 'page-flags', 'account-type', 'prvkey', 'pubkey'];
|
$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)) {
|
if (!DBA::isResult($user)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -399,7 +399,7 @@ class User
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$repairMissing) {
|
if (!$repairMissing || $owner['account_expired']) {
|
||||||
return $owner;
|
return $owner;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1367,6 +1367,9 @@ class User
|
||||||
// unique), so it cannot be re-registered in the future.
|
// unique), so it cannot be re-registered in the future.
|
||||||
DBA::insert('userd', ['username' => $user['nickname']]);
|
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
|
// 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]);
|
DBA::update('user', ['account_removed' => true, 'account_expires_on' => DateTimeFormat::utc('now + 7 day')], ['uid' => $uid]);
|
||||||
Worker::add(PRIORITY_HIGH, 'Notifier', Delivery::REMOVAL, $uid);
|
Worker::add(PRIORITY_HIGH, 'Notifier', Delivery::REMOVAL, $uid);
|
||||||
|
|
Loading…
Reference in a new issue