aboutsummaryrefslogtreecommitdiff
path: root/cli/delete-user.php
diff options
context:
space:
mode:
Diffstat (limited to 'cli/delete-user.php')
-rwxr-xr-xcli/delete-user.php36
1 files changed, 17 insertions, 19 deletions
diff --git a/cli/delete-user.php b/cli/delete-user.php
index b4f042847..18efa4253 100755
--- a/cli/delete-user.php
+++ b/cli/delete-user.php
@@ -5,29 +5,27 @@ require(__DIR__ . '/_cli.php');
performRequirementCheck(FreshRSS_Context::systemConf()->db['type'] ?? '');
-$parameters = [
- 'long' => [
- 'user' => ':',
- ],
- 'short' => [],
- 'deprecated' => [],
-];
-
-$options = parseCliParams($parameters);
-
-if (!empty($options['invalid']) || empty($options['valid']['user']) || !is_string($options['valid']['user'])) {
- fail('Usage: ' . basename(__FILE__) . " --user username");
+$cliOptions = new class extends CliOptionsParser {
+ public string $user;
+
+ public function __construct() {
+ $this->addRequiredOption('user', (new CliOption('user')));
+ parent::__construct();
+ }
+};
+
+if (!empty($cliOptions->errors)) {
+ fail('FreshRSS error: ' . array_shift($cliOptions->errors) . "\n" . $cliOptions->usage);
}
-$username = $options['valid']['user'];
+
+$username = $cliOptions->user;
+
if (!FreshRSS_user_Controller::checkUsername($username)) {
- fail('FreshRSS error: invalid username “' . $username . '”');
+ fail('FreshRSS error: invalid username: ' . $username . "\n");
}
-
-$usernames = listUsers();
-if (!preg_grep("/^$username$/i", $usernames)) {
- fail('FreshRSS error: username not found “' . $username . '”');
+if (!FreshRSS_user_Controller::userExists($username)) {
+ fail('FreshRSS error: user not found: ' . $username . "\n");
}
-
if (strcasecmp($username, FreshRSS_Context::systemConf()->default_user) === 0) {
fail('FreshRSS error: default user must not be deleted: “' . $username . '”');
}