|
|
@@ -72,6 +72,10 @@ class FreshRSS_user_Controller extends FreshRSS_ActionController {
|
|
|
}
|
|
|
|
|
|
if (Minz_Request::isPost()) {
|
|
|
+ if (self::reauthRedirect()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
$username = Minz_Request::paramString('username');
|
|
|
$newPasswordPlain = Minz_User::name() !== $username ? Minz_Request::paramString('newPasswordPlain', true) : '';
|
|
|
|
|
|
@@ -190,21 +194,41 @@ class FreshRSS_user_Controller extends FreshRSS_ActionController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public static function reauthRedirect(): bool {
|
|
|
+ $url_redirect = [
|
|
|
+ 'c' => 'user',
|
|
|
+ 'a' => 'manage',
|
|
|
+ 'params' => [],
|
|
|
+ ];
|
|
|
+ $username = Minz_Request::paramStringNull('username');
|
|
|
+ if ($username !== null) {
|
|
|
+ $url_redirect['a'] = 'details';
|
|
|
+ $url_redirect['params']['username'] = $username;
|
|
|
+ }
|
|
|
+ return FreshRSS_Auth::requestReauth($url_redirect);
|
|
|
+ }
|
|
|
+
|
|
|
public function purgeAction(): void {
|
|
|
if (!FreshRSS_Auth::hasAccess('admin')) {
|
|
|
Minz_Error::error(403);
|
|
|
}
|
|
|
|
|
|
- if (Minz_Request::isPost()) {
|
|
|
- $username = Minz_Request::paramString('username');
|
|
|
+ if (!Minz_Request::isPost()) {
|
|
|
+ Minz_Error::error(403);
|
|
|
+ }
|
|
|
|
|
|
- if (!FreshRSS_UserDAO::exists($username)) {
|
|
|
- Minz_Error::error(404);
|
|
|
- }
|
|
|
+ if (self::reauthRedirect()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ $username = Minz_Request::paramString('username');
|
|
|
|
|
|
- $feedDAO = FreshRSS_Factory::createFeedDao($username);
|
|
|
- $feedDAO->purge();
|
|
|
+ if (!FreshRSS_UserDAO::exists($username)) {
|
|
|
+ Minz_Error::error(404);
|
|
|
}
|
|
|
+
|
|
|
+ $feedDAO = FreshRSS_Factory::createFeedDao($username);
|
|
|
+ $feedDAO->purge();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -215,6 +239,10 @@ class FreshRSS_user_Controller extends FreshRSS_ActionController {
|
|
|
Minz_Error::error(403);
|
|
|
}
|
|
|
|
|
|
+ if (self::reauthRedirect()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
FreshRSS_View::prependTitle(_t('admin.user.title') . ' · ');
|
|
|
|
|
|
if (Minz_Request::isPost()) {
|
|
|
@@ -337,6 +365,10 @@ class FreshRSS_user_Controller extends FreshRSS_ActionController {
|
|
|
Minz_Error::error(403);
|
|
|
}
|
|
|
|
|
|
+ if (self::reauthRedirect()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
if (Minz_Request::isPost()) {
|
|
|
$new_user_name = Minz_Request::paramString('new_user_name');
|
|
|
$email = Minz_Request::paramString('new_user_email');
|
|
|
@@ -602,7 +634,10 @@ class FreshRSS_user_Controller extends FreshRSS_ActionController {
|
|
|
$username, FreshRSS_Context::userConf()->passwordHash,
|
|
|
$nonce, $challenge
|
|
|
);
|
|
|
+ } elseif (self::reauthRedirect()) {
|
|
|
+ return;
|
|
|
}
|
|
|
+
|
|
|
if ($ok) {
|
|
|
$ok &= self::deleteUser($username);
|
|
|
}
|
|
|
@@ -647,6 +682,10 @@ class FreshRSS_user_Controller extends FreshRSS_ActionController {
|
|
|
Minz_Error::error(403);
|
|
|
}
|
|
|
|
|
|
+ if (self::reauthRedirect()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
$username = Minz_Request::paramString('username');
|
|
|
if (!FreshRSS_UserDAO::exists($username)) {
|
|
|
Minz_Error::error(404);
|
|
|
@@ -682,6 +721,10 @@ class FreshRSS_user_Controller extends FreshRSS_ActionController {
|
|
|
Minz_Error::error(403);
|
|
|
}
|
|
|
|
|
|
+ if (self::reauthRedirect()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
$username = Minz_Request::paramString('username');
|
|
|
if (!FreshRSS_UserDAO::exists($username)) {
|
|
|
Minz_Error::error(404);
|