UserHelper, CLI: add a method to check user password

This commit is contained in:
Andrew Dolgov
2022-06-10 22:16:48 +03:00
parent 8632c39eb2
commit d4be821825
2 changed files with 50 additions and 12 deletions

View File

@@ -101,6 +101,7 @@
"user-list" => "list all users",
"user-add:" => ["USER[:PASSWORD[:ACCESS_LEVEL=0]]", "add USER, prompts for password if unset"],
"user-remove:" => ["USERNAME", "remove USER"],
"user-check-password:" => ["USER:PASSWORD", "returns 0 if user has specified PASSWORD"],
"user-set-password:" => ["USER:PASSWORD", "sets PASSWORD of specified USER"],
"user-set-access-level:" => ["USER:LEVEL", "sets access LEVEL of specified USER"],
"user-exists:" => ["USER", "returns 0 if specified USER exists in the database"],
@@ -535,6 +536,21 @@
exit(1);
}
if (isset($options["user-check-password"])) {
list ($login, $password) = explode(":", $options["user-check-password"], 2);
$uid = UserHelper::find_user_by_login($login);
if (!$uid) {
Debug::log("Error: User not found: $login");
exit(1);
}
$rc = UserHelper::user_has_password($uid, $password);
exit($rc ? 0 : 1);
}
PluginHost::getInstance()->run_commands($options);
if (file_exists(Config::get(Config::LOCK_DIRECTORY) . "/$lock_filename"))