mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-04-27 17:58:52 -04:00
Fix CLI api_password (#3179)
* Fix CLI api_password #fix https://github.com/FreshRSS/FreshRSS/issues/3177 Fix regression from https://github.com/FreshRSS/FreshRSS/pull/2675 * Update cli/_update-or-create-user.php Co-authored-by: oupala <oupala@users.noreply.github.com> Co-authored-by: oupala <oupala@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
f1fe2147a1
commit
bb9b166eb1
@@ -4,6 +4,31 @@
|
||||
* This controller manage API-related features.
|
||||
*/
|
||||
class FreshRSS_api_Controller extends Minz_ActionController {
|
||||
|
||||
/**
|
||||
* Update the user API password.
|
||||
* Return an error message, or `false` if no error.
|
||||
*/
|
||||
public static function updatePassword($apiPasswordPlain) {
|
||||
$username = Minz_Session::param('currentUser');
|
||||
$userConfig = FreshRSS_Context::$user_conf;
|
||||
|
||||
$apiPasswordHash = FreshRSS_password_Util::hash($apiPasswordPlain);
|
||||
$userConfig->apiPasswordHash = $apiPasswordHash;
|
||||
|
||||
$feverKey = FreshRSS_fever_Util::updateKey($username, $apiPasswordPlain);
|
||||
if (!$feverKey) {
|
||||
return _t('feedback.api.password.failed');
|
||||
}
|
||||
|
||||
$userConfig->feverKey = $feverKey;
|
||||
if ($userConfig->save()) {
|
||||
return false;
|
||||
} else {
|
||||
return _t('feedback.api.password.failed');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This action updates the user API password.
|
||||
*
|
||||
@@ -22,26 +47,16 @@ class FreshRSS_api_Controller extends Minz_ActionController {
|
||||
}
|
||||
|
||||
$apiPasswordPlain = Minz_Request::param('apiPasswordPlain', '', true);
|
||||
$apiPasswordPlain = trim($apiPasswordPlain);
|
||||
if ($apiPasswordPlain == '') {
|
||||
Minz_Request::forward($return_url, true);
|
||||
}
|
||||
|
||||
$username = Minz_Session::param('currentUser');
|
||||
$userConfig = FreshRSS_Context::$user_conf;
|
||||
|
||||
$apiPasswordHash = FreshRSS_password_Util::hash($apiPasswordPlain);
|
||||
$userConfig->apiPasswordHash = $apiPasswordHash;
|
||||
|
||||
$feverKey = FreshRSS_fever_Util::updateKey($username, $apiPasswordPlain);
|
||||
if (!$feverKey) {
|
||||
Minz_Request::bad(_t('feedback.api.password.failed'), $return_url);
|
||||
}
|
||||
|
||||
$userConfig->feverKey = $feverKey;
|
||||
if ($userConfig->save()) {
|
||||
Minz_Request::good(_t('feedback.api.password.updated'), $return_url);
|
||||
$error = self::updatePassword($apiPasswordPlain);
|
||||
if ($error) {
|
||||
Minz_Request::bad($error, $return_url);
|
||||
} else {
|
||||
Minz_Request::bad(_t('feedback.api.password.failed'), $return_url);
|
||||
Minz_Request::good(_t('feedback.api.password.updated'), $return_url);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ require(__DIR__ . '/_cli.php');
|
||||
$params = array(
|
||||
'user:',
|
||||
'password:',
|
||||
'api_password:',
|
||||
'language:',
|
||||
'email:',
|
||||
'token:',
|
||||
@@ -22,9 +23,9 @@ $options = getopt('', $params);
|
||||
|
||||
if (!validateOptions($argv, $params) || empty($options['user'])) {
|
||||
fail('Usage: ' . basename($_SERVER['SCRIPT_FILENAME']) .
|
||||
" --user username ( --password 'password'" .
|
||||
" --user username ( --password 'password' --api_password 'api_password'" .
|
||||
" --language en --email user@example.net --token 'longRandomString'" .
|
||||
($isUpdate ? '' : '--no_default_feeds') .
|
||||
($isUpdate ? '' : ' --no_default_feeds') .
|
||||
" --purge_after_months 3 --feed_min_articles_default 50 --feed_ttl_default 3600" .
|
||||
" --since_hours_posts_per_rss 168 --max_posts_per_rss 400 )");
|
||||
}
|
||||
|
||||
@@ -28,6 +28,14 @@ if (!$ok) {
|
||||
fail('FreshRSS could not create user!');
|
||||
}
|
||||
|
||||
if (!empty($options['api_password'])) {
|
||||
$username = cliInitUser($username);
|
||||
$error = FreshRSS_api_Controller::updatePassword($options['api_password']);
|
||||
if ($error) {
|
||||
fail($error);
|
||||
}
|
||||
}
|
||||
|
||||
invalidateHttpCache(FreshRSS_Context::$system_conf->default_user);
|
||||
|
||||
echo '• Remember to refresh the feeds of the user: ', $username , "\n",
|
||||
|
||||
@@ -17,6 +17,13 @@ if (!$ok) {
|
||||
fail('FreshRSS could not update user!');
|
||||
}
|
||||
|
||||
if (!empty($options['api_password'])) {
|
||||
$error = FreshRSS_api_Controller::updatePassword($options['api_password']);
|
||||
if ($error) {
|
||||
fail($error);
|
||||
}
|
||||
}
|
||||
|
||||
invalidateHttpCache($username);
|
||||
|
||||
accessRights();
|
||||
|
||||
Reference in New Issue
Block a user