aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexis Degrugillier <aledeg@users.noreply.github.com> 2021-06-01 08:16:33 -0400
committerGravatar GitHub <noreply@github.com> 2021-06-01 14:16:33 +0200
commit3c3eab768ea8b2edc0a158aee8aba9c362fa06fd (patch)
treec727f957f7087ede849e4d7e053cc842ac6557c0
parentd6a0af6ba085af3b12a428654467c12775b47877 (diff)
Fix user creation form redirection (#3656)
Before, when there was an error during the user creation process, the user was always redirected to the same page no matter where the creation process was initiated (registration or creation by an admin). Thus, there were no error messages displayed when something went bad during the creation process by an admin. Now, the origin of the user creation has been added to the form to be able to redirect the user to the proper page.
-rw-r--r--app/Controllers/userController.php16
-rw-r--r--app/views/user/manage.phtml3
2 files changed, 13 insertions, 6 deletions
diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php
index ec5e348c2..0b23ff953 100644
--- a/app/Controllers/userController.php
+++ b/app/Controllers/userController.php
@@ -287,25 +287,29 @@ class FreshRSS_user_Controller extends Minz_ActionController {
$new_user_name = Minz_Request::param('new_user_name');
$email = Minz_Request::param('new_user_email', '');
$passwordPlain = Minz_Request::param('new_user_passwordPlain', '', true);
+ $badRedirectUrl = [
+ 'c' => Minz_Request::param('originController', 'auth'),
+ 'a' => Minz_Request::param('originAction', 'register'),
+ ];
if (!self::checkUsername($new_user_name)) {
Minz_Request::bad(
_t('user.username.invalid'),
- array('c' => 'auth', 'a' => 'register')
+ $badRedirectUrl
);
}
if (FreshRSS_UserDAO::exists($new_user_name)) {
Minz_Request::bad(
_t('user.username.taken', $new_user_name),
- array('c' => 'auth', 'a' => 'register')
+ $badRedirectUrl
);
}
if (!FreshRSS_password_Util::check($passwordPlain)) {
Minz_Request::bad(
_t('user.password.invalid'),
- array('c' => 'auth', 'a' => 'register')
+ $badRedirectUrl
);
}
@@ -315,21 +319,21 @@ class FreshRSS_user_Controller extends Minz_ActionController {
if ($system_conf->force_email_validation && empty($email)) {
Minz_Request::bad(
_t('user.email.feedback.required'),
- array('c' => 'auth', 'a' => 'register')
+ $badRedirectUrl
);
}
if (!empty($email) && !validateEmailAddress($email)) {
Minz_Request::bad(
_t('user.email.feedback.invalid'),
- array('c' => 'auth', 'a' => 'register')
+ $badRedirectUrl
);
}
if ($tos_enabled && !$accept_tos) {
Minz_Request::bad(
_t('user.tos.feedback.invalid'),
- array('c' => 'auth', 'a' => 'register')
+ $badRedirectUrl
);
}
diff --git a/app/views/user/manage.phtml b/app/views/user/manage.phtml
index c22affc9d..bffda64e6 100644
--- a/app/views/user/manage.phtml
+++ b/app/views/user/manage.phtml
@@ -5,6 +5,9 @@
<form method="post" action="<?= _url('user', 'create') ?>" autocomplete="off">
<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
+ <input type="hidden" name="originController" value="<?= Minz_Request::controllerName() ?>" />
+ <input type="hidden" name="originAction" value="<?= Minz_Request::actionName() ?>" />
+
<legend><?= _t('admin.user.create') ?></legend>
<div class="form-group">