From d3eea281f81edeb456036fbf3d71d92c65e7bb38 Mon Sep 17 00:00:00 2001 From: Alexander Purr <purr@ub.uni-leipzig.de> Date: Tue, 7 Jan 2020 16:52:30 +0100 Subject: [PATCH] refs #16680 [fid] adjust reset password form * remove required text and add information to username change form * prefill email address at password reset form * disable email input and email validation for logged in users --- module/fid/src/Controller/UserController.php | 18 ++++++++++++++---- themes/fid/languages/fid/de.ini | 2 ++ themes/fid/languages/fid/en.ini | 2 ++ .../templates/fid/user/password-reset.phtml | 1 + .../templates/fid/user/username-change.phtml | 6 +----- 5 files changed, 20 insertions(+), 9 deletions(-) diff --git a/module/fid/src/Controller/UserController.php b/module/fid/src/Controller/UserController.php index 2e8d89f664e..7eb04a7da71 100644 --- a/module/fid/src/Controller/UserController.php +++ b/module/fid/src/Controller/UserController.php @@ -458,6 +458,12 @@ class UserController extends AbstractBase $form = $this->serviceLocator->get(PasswordResetModel::class); $forwarded = $this->params()->fromRoute('forwarded', false); + if($this->getUser()) { + $form->get('username')->setAttribute('disabled', 'true'); + $form->get('username')->setValue($this->client->requestUserDetails()->getUsername()); + $form->setValidationGroup(['submit']); + } + if ($submitted = $this->formWasSubmitted()) { $form->setData($request->getPost()); if (!$forwarded && $form->isValid()) { @@ -474,11 +480,15 @@ class UserController extends AbstractBase protected function sendResetPassword(Form $form) { - /** @var PasswordResetModel $model */ $messenger = $this->getMessenger(); - $model = $form->getHydrator()->hydrate( - $form->getData(), new PasswordResetModel()); - $username = $model->getUsername(); + if ($this->getUser()) { + $username = $this->client->requestUserDetails()->getUsername(); + } else { + /** @var PasswordResetModel $model */ + $model = $form->getHydrator()->hydrate( + $form->getData(), new PasswordResetModel()); + $username = $model->getUsername(); + } try { /** @noinspection PhpUndefinedFieldInspection */ diff --git a/themes/fid/languages/fid/de.ini b/themes/fid/languages/fid/de.ini index c6b2429f49a..9e3e16e5700 100644 --- a/themes/fid/languages/fid/de.ini +++ b/themes/fid/languages/fid/de.ini @@ -6,8 +6,10 @@ user_init_form_title = "Registrierung" user_create_form_title = "Registrierung abschließen" user_update_form_title = "Profildaten editieren." password_reset_form_title = "Passwort zurücksetzen" +password_reset_form_information = "Bitte geben Sie die E-Mail-Adresse ein, mit der Sie sich registriert haben. Wir senden Ihnen einen Link per E-Mail, über den Sie Ihr Passwort ändern können." password_change_form_title = "Neues Passwort speichern" username_change_form_title = "E-Mail-Adresse ändern" +username_change_form_information = "Bitte geben Sie Ihre neue E-Mail-Adresse ein. Wir senden Ihnen einen Link per E-Mail, über den Sie Ihre neue E-Mail-Adresse bestätigen müssen. Danach können Sie sich mit Ihrer neuen E-Mail-Adresse anmelden." label_username = "E-Mail-Adresse" label_newusername = "Neue E-Mail-Adresse" diff --git a/themes/fid/languages/fid/en.ini b/themes/fid/languages/fid/en.ini index d23b1f317e9..45291196faa 100644 --- a/themes/fid/languages/fid/en.ini +++ b/themes/fid/languages/fid/en.ini @@ -6,8 +6,10 @@ user_init_form_title = "Registration" user_create_form_title = "Complete registration" user_update_form_title = "Profile data" password_reset_form_title = "Reset password" +password_reset_form_information = "Please enter the e-mail address by which you registered your user account. We will send you a link to change your password." password_change_form_title = "Save new password" username_change_form_title = "Update email address" +username_change_form_information = "Please enter your new e-mail address. We will send you a link to confirm your new email address. Then you can login with your new e-mail address." label_username = "Email address" label_newusername = "New email address" diff --git a/themes/fid/templates/fid/user/password-reset.phtml b/themes/fid/templates/fid/user/password-reset.phtml index 3bf4994ed40..02cb1122f8b 100644 --- a/themes/fid/templates/fid/user/password-reset.phtml +++ b/themes/fid/templates/fid/user/password-reset.phtml @@ -53,6 +53,7 @@ $this->headTitle($this->translate("fid::password_reset_form_title")); ?> <h2><?= $this->translate("fid::password_reset_form_title") ?></h2> <?= $this->flashmessages() ?> +<?= $this->translate("fid::password_reset_form_information") ?> <?= $this->form()->openTag($form) ?> <br/> <?php /* username */ ?> diff --git a/themes/fid/templates/fid/user/username-change.phtml b/themes/fid/templates/fid/user/username-change.phtml index 4d9f6945dfc..80331a37350 100644 --- a/themes/fid/templates/fid/user/username-change.phtml +++ b/themes/fid/templates/fid/user/username-change.phtml @@ -54,12 +54,8 @@ $this->headTitle($this->translate("fid::username_change_form_title")); ?> <h2><?= $this->translate("fid::username_change_form_title") ?></h2> - -<div class="subito-pg"> - * <?=$this->transEsc("This field is required")?> -</div> - <?= $this->flashmessages() ?> +<?= $this->translate("fid::username_change_form_information") ?> <?= $this->form()->openTag($form) ?> <br/> <? /* username */ ?> -- GitLab