X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FWorker%2FExpireAndRemoveUsers.php;h=491ac5d64b77f6b7fdce56e29be91f09bfaaae71;hb=34030a736d5e0aa2195c0f472cf69f863c161d83;hp=949b7dea9f26839fd0f220e343c9d78e7809a3d1;hpb=b55ae5717ba77786e03901bb14d8327d81523eda;p=friendica.git diff --git a/src/Worker/ExpireAndRemoveUsers.php b/src/Worker/ExpireAndRemoveUsers.php index 949b7dea9f..491ac5d64b 100644 --- a/src/Worker/ExpireAndRemoveUsers.php +++ b/src/Worker/ExpireAndRemoveUsers.php @@ -1,6 +1,6 @@ ? AND `account_expires_on` < UTC_TIMESTAMP() AND `page-flags` = ? AND `uid` != ?", - DBA::NULL_DATETIME, User::PAGE_FLAGS_NORMAL, 0]; + $condition = ["NOT `account_expired` AND `account_expires_on` > ? AND `account_expires_on` < ? AND `page-flags` = ? AND `uid` != ?", + DBA::NULL_DATETIME, DateTimeFormat::utcNow(), User::PAGE_FLAGS_NORMAL, 0]; DBA::update('user', ['account_expired' => true], $condition); // Ensure to never remove the user with uid=0 @@ -52,12 +53,18 @@ class ExpireAndRemoveUsers DBA::close($users); // delete user records for recently removed accounts - $users = DBA::select('user', ['uid'], ["`account_removed` AND `account_expires_on` < UTC_TIMESTAMP() AND `uid` != ?", 0]); + $users = DBA::select('user', ['uid'], ["`account_removed` AND `account_expires_on` < ? AND `uid` != ?", DateTimeFormat::utcNow(), 0]); while ($user = DBA::fetch($users)) { // We have to delete photo entries by hand because otherwise the photo data won't be deleted Photo::delete(['uid' => $user['uid']]); // Delete the contacts of this user + $self = DBA::selectFirst('contact', ['nurl'], ['self' => true, 'uid' => $user['uid']]); + if (DBA::isResult($self)) { + DBA::delete('contact', ['nurl' => $self['nurl'], 'self' => false]); + } + + // Delete all contacts of this user DBA::delete('contact', ['uid' => $user['uid']]); // These tables contain the permissionset which will also be deleted when a user is deleted.