diff --git a/src/Console/User.php b/src/Console/User.php index d97662038..a135e6292 100644 --- a/src/Console/User.php +++ b/src/Console/User.php @@ -304,19 +304,24 @@ HELP; } } - $user = $this->dba->selectFirst('user', ['uid'], ['nickname' => $nick]); + $user = $this->dba->selectFirst('user', ['uid', 'account_removed'], ['nickname' => $nick]); if (empty($user)) { throw new RuntimeException($this->l10n->t('User not found')); } + if (!empty($user['account_removed'])) { + $this->out($this->l10n->t('User has already been marked for deletion.')); + return true; + } + if (!$this->getOption('q')) { $this->out($this->l10n->t('Type "yes" to delete %s', $nick)); if (CliPrompt::prompt() !== 'yes') { - throw new RuntimeException('Delete abort.'); + throw new RuntimeException($this->l10n->t('Deletion aborted.')); } } - return UserModel::remove($user['uid'] ?? -1); + return UserModel::remove($user['uid']); } /** diff --git a/src/Model/User.php b/src/Model/User.php index 89574e760..b561a7912 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -1162,7 +1162,7 @@ class User // unique), so it cannot be re-registered in the future. DBA::insert('userd', ['username' => $user['nickname']]); - // The user and related data will be deleted in "cron_expire_and_remove_users" (cronjobs.php) + // The user and related data will be deleted in Friendica\Worker\CronJobs::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);