}
}
- $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']);
}
/**
// 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);