From 4982c20455e58979905f09c2df0fdf050c2b3660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuli=20Sillanp=C3=A4=C3=A4?= <samuli.sillanpaa@helsinki.fi> Date: Fri, 20 Dec 2019 13:42:30 +0200 Subject: [PATCH] FeedbackForms: handle redirect of logged-out users in controller. (#1528) - Previous version used data-lightbox-onclose and did not work with external login method (for example Shibboleth). --- languages/ar.ini | 1 - languages/bn.ini | 1 - languages/ca.ini | 1 - languages/cs.ini | 1 - languages/cy.ini | 1 - languages/da.ini | 1 - languages/de.ini | 1 - languages/el.ini | 1 - languages/en.ini | 1 - languages/es.ini | 1 - languages/eu.ini | 1 - languages/fi.ini | 1 - languages/fr.ini | 1 - languages/ga.ini | 1 - languages/he.ini | 1 - languages/hi.ini | 1 - languages/hr.ini | 1 - languages/ja.ini | 1 - languages/nl.ini | 1 - languages/pl.ini | 1 - languages/pt-br.ini | 1 - languages/pt.ini | 1 - languages/ru.ini | 1 - languages/sl.ini | 1 - languages/sv.ini | 1 - languages/tr.ini | 1 - languages/vi.ini | 1 - languages/zh-cn.ini | 1 - languages/zh.ini | 1 - .../VuFind/Controller/FeedbackController.php | 4 ++ .../bootstrap3/templates/feedback/form.phtml | 61 ++++++++----------- 31 files changed, 31 insertions(+), 63 deletions(-) diff --git a/languages/ar.ini b/languages/ar.ini index 63675a28d09..46971a7a692 100644 --- a/languages/ar.ini +++ b/languages/ar.ini @@ -407,7 +407,6 @@ Favorites = "المÙضلة" Fee = "رسم" Feedback = "تغذية راجعة" feedback_email = "البريد الالكتروني" -feedback_login_required = "يجب تسجيل دخولك أولا" feedback_name = "الاسم" Field of activity = "Øقل النشاط" File Description = "وص٠الملÙ" diff --git a/languages/bn.ini b/languages/bn.ini index 523c14246c6..2aaa650d658 100644 --- a/languages/bn.ini +++ b/languages/bn.ini @@ -390,7 +390,6 @@ Favorites = "উপাদানটি সংরকà§à¦·à¦¨ করা হয়ে Fee = "খরচ" Feedback = "পà§à¦°à¦¤à¦¿à¦•à§à¦°à¦¿à¦¯à¦¼à¦¾ পাঠান" feedback_email = "ই-মেইল" -feedback_login_required = "আপনি আগে লগইন করà§à¦¨" feedback_name = "নাম" Field of activity = "বিষয় দকà§à¦·à¦¤à¦¾" File Description = "ফাইলের বিবরণ" diff --git a/languages/ca.ini b/languages/ca.ini index 64a88d2eef6..de6a7104f61 100644 --- a/languages/ca.ini +++ b/languages/ca.ini @@ -418,7 +418,6 @@ Favorites = "Favorits" Fee = "Quota" Feedback = "Feedback" feedback_email = "Correu electrònic" -feedback_login_required = "Abans heu d’iniciar sessió." feedback_name = "Nom" Field of activity = "Camp d'activitat" File Description = "Descripció del fitxer" diff --git a/languages/cs.ini b/languages/cs.ini index 240d9826275..871ace8fbaf 100755 --- a/languages/cs.ini +++ b/languages/cs.ini @@ -405,7 +405,6 @@ Favorites = "OblÃbené" Fee = "Poplatek" Feedback = "Váš názor" feedback_email = "Poslat emailem" -feedback_login_required = "Nejprve se musÃte pÅ™ihlásit." feedback_name = "Jméno" Field of activity = "Oblast působenÃ" File Description = "Popis souboru" diff --git a/languages/cy.ini b/languages/cy.ini index de52cb3d62f..d1e6c6d88d2 100644 --- a/languages/cy.ini +++ b/languages/cy.ini @@ -386,7 +386,6 @@ Favorites = "Ffefrynnau" Fee = "Fee" Feedback = "Adborth" feedback_email = "E-bost" -feedback_login_required = "Rhaid i chi fewngofnodi yn gyntaf." feedback_name = "Enw" Field of activity = "Maes gweithgarwch" File Description = "Disgrifiad Ffeil" diff --git a/languages/da.ini b/languages/da.ini index b4b67392969..e5ad0de5445 100644 --- a/languages/da.ini +++ b/languages/da.ini @@ -253,7 +253,6 @@ fav_list_delete_fail = "Vi beklager. Der er sket en fejl. Den liste blev ikke sl Favorites = "Favoritter" Fee = "Betaling" feedback_email = "Email" -feedback_login_required = "Du skal først være logget ind." Find = "Find" Find More = "Find flere" Find New Items = "Find nye værkerâ€" diff --git a/languages/de.ini b/languages/de.ini index e2576d21267..f35511c4e91 100644 --- a/languages/de.ini +++ b/languages/de.ini @@ -406,7 +406,6 @@ Favorites = "Favoriten" Fee = "Gebühr" Feedback = "Feedback" feedback_email = "E-Mail" -feedback_login_required = "Bitte loggen Sie sich zuerst ein." feedback_name = "Name" Field of activity = "Tätigkeitsbereich" File Description = "Dateibeschreibung" diff --git a/languages/el.ini b/languages/el.ini index ebfb5e34f57..a5697b6161e 100644 --- a/languages/el.ini +++ b/languages/el.ini @@ -407,7 +407,6 @@ Favorites = "ΑγαπημÎνα" Fee = "ΧÏÎωση" Feedback = "Σχόλιά" feedback_email = "ΗλεκτÏονικό ταχυδÏομείο" -feedback_login_required = "Î ÏÎπει Ï€Ïώτα να συνδεθείτε." feedback_name = "Όνομα" Field of activity = "Πεδίο δÏαστηÏιότητας" File Description = "ΠεÏιγÏαφή αÏχείου" diff --git a/languages/en.ini b/languages/en.ini index 08d8dff21c2..defc6d49c91 100644 --- a/languages/en.ini +++ b/languages/en.ini @@ -406,7 +406,6 @@ Favorites = "Saved Items" Fee = "Fee" Feedback = "Feedback" feedback_email = "Email" -feedback_login_required = "You must be logged in first." feedback_name = "Name" Field of activity = "Field of activity" File Description = "File Description" diff --git a/languages/es.ini b/languages/es.ini index 02c446e07e6..0e7b46ee5d9 100644 --- a/languages/es.ini +++ b/languages/es.ini @@ -389,7 +389,6 @@ Favorites = "Favoritos" Fee = "Cuota" Feedback = "Comentarios" feedback_email = "Correo Electrónico" -feedback_login_required = "Primero debe ingresar al sistema." feedback_name = "Nombre" Field of activity = "Campo de actividad" File Description = "Descripción del Archivo" diff --git a/languages/eu.ini b/languages/eu.ini index d4674cad9c3..93e0775ad46 100644 --- a/languages/eu.ini +++ b/languages/eu.ini @@ -1006,7 +1006,6 @@ Favorites = "Gogokoenak" Fee = "Kuota" Feedback = "Feedback" feedback_email = "Posta elektronikoa" -feedback_login_required = "Lehenik saioa ireki behar duzu." feedback_name = "Feedback-Izena" Field of activity = "Jarduera-eremua" File Description = "Fitxategi deskribapena" diff --git a/languages/fi.ini b/languages/fi.ini index 6f9b6c18d21..3e5924d7371 100644 --- a/languages/fi.ini +++ b/languages/fi.ini @@ -410,7 +410,6 @@ Favorites = "Suosikit" Fee = "Maksu" Feedback = "Palaute" feedback_email = "Sähköposti" -feedback_login_required = "Kirjaudu sisään ensin." feedback_name = "Nimi" Field of activity = "Toimiala" File Description = "Tiedoston kuvaus" diff --git a/languages/fr.ini b/languages/fr.ini index b9af6b69cc6..3b139cde0b5 100644 --- a/languages/fr.ini +++ b/languages/fr.ini @@ -388,7 +388,6 @@ Favorites = "Favoris" Fee = "Frais" Feedback = "Remarques" feedback_email = "Courriel" -feedback_login_required = "Il faut se connecter d'abord." feedback_name = "Nom" Field of activity = "Domaine d'activité" File Description = "Description du fichier" diff --git a/languages/ga.ini b/languages/ga.ini index eff96c5cafc..f11df41ca85 100644 --- a/languages/ga.ini +++ b/languages/ga.ini @@ -240,7 +240,6 @@ fav_list_delete_fail = "Ãr leithscéal, ach tharla earráid. NÃor scriosadh do Favorites = "Ceanáin" Fee = "Táille" feedback_email = "RÃomhphost" -feedback_login_required = "Nà mór a bheith logáilte amach i gcónaÃ." Find = "Aimsigh" Find More = "Aimsigh Tuilleadh" Find New Items = "Aimsigh MÃreanna Nua" diff --git a/languages/he.ini b/languages/he.ini index c4f5bb13cf0..e62d08681a9 100644 --- a/languages/he.ini +++ b/languages/he.ini @@ -275,7 +275,6 @@ fav_list_delete_fail = "מצטערי×. ×רעה שגי××”. הרשימה שלך Favorites = "מועדפי×" Fee = "דמי שימוש" feedback_email = "דו×ל" -feedback_login_required = "צריך להיות מחובר מר×ש" filter_wildcard = "כל ×חד" Find = "מצ×" Find More = "×ž×¦× ×¢×•×“" diff --git a/languages/hi.ini b/languages/hi.ini index b400653c7d4..793d7867dc0 100644 --- a/languages/hi.ini +++ b/languages/hi.ini @@ -389,7 +389,6 @@ Favorites = "बची हà¥à¤ˆ वसà¥à¤¤à¥à¤à¤" Fee = "शà¥à¤²à¥à¤•" Feedback = "पà¥à¤°à¤¤à¤¿à¤ªà¥à¤·à¥à¤Ÿà¤¿" feedback_email = "ईमेल" -feedback_login_required = "आपको पहले लॉग इन होना चाहिà¤" feedback_name = "नाम" Field of activity = "गतिविधि का कà¥à¤·à¥‡à¤¤à¥à¤°" File Description = "फाइल विवरण" diff --git a/languages/hr.ini b/languages/hr.ini index 8fcc510bbc2..c9976e238b4 100644 --- a/languages/hr.ini +++ b/languages/hr.ini @@ -406,7 +406,6 @@ Favorites = "Spremljena djela" Fee = "Pristojba" Feedback = "Povratna informacija" feedback_email = "PoÅ¡alji e-poÅ¡tom" -feedback_login_required = "MoraÅ¡ se najprije prijaviti." feedback_name = "Ime" Field of activity = "PodruÄje djelatnosti" File Description = "Opis datoteke" diff --git a/languages/ja.ini b/languages/ja.ini index 72f5de56501..f66415934a0 100644 --- a/languages/ja.ini +++ b/languages/ja.ini @@ -407,7 +407,6 @@ Favorites = "ãŠæ°—ã«å…¥ã‚Š" Fee = "料金" Feedback = "ã”æ„見" feedback_email = "メール" -feedback_login_required = "ã“ã®æ“作ã«ã¯ãƒã‚°ã‚¤ãƒ³ãŒå¿…è¦ã§ã™" feedback_name = "ãŠåå‰" Field of activity = "アクテイビティã®ãƒ•ã‚¤ãƒ¼ãƒ«ãƒ‰" File Description = "ファイル記述" diff --git a/languages/nl.ini b/languages/nl.ini index e431fd55915..c3daa9b123b 100644 --- a/languages/nl.ini +++ b/languages/nl.ini @@ -389,7 +389,6 @@ Favorites = "Favorieten" Fee = "Bijdrage" Feedback = "Feedback" feedback_email = "Email" -feedback_login_required = "Je moet eerst inloggen." feedback_name = "Naam" Field of activity = "Werkterrein" File Description = "Bestandsbeschrijving" diff --git a/languages/pl.ini b/languages/pl.ini index 771be5f08cb..ededdb10487 100644 --- a/languages/pl.ini +++ b/languages/pl.ini @@ -448,7 +448,6 @@ Favorites = "Ulubione książki" Fee = "OpÅ‚ata" Feedback = "Feedback" feedback_email = "Email" -feedback_login_required = "Najpierw siÄ™ zaloguj." feedback_name = "Nazwisko" Field of activity = "Zakres dziaÅ‚alnoÅ›ci" File Description = "Opis pliku" diff --git a/languages/pt-br.ini b/languages/pt-br.ini index 36661755839..47ea19f4d0c 100644 --- a/languages/pt-br.ini +++ b/languages/pt-br.ini @@ -406,7 +406,6 @@ Favorites = "Itens Guardados" Fee = "Multas" Feedback = "Comentário" feedback_email = "Email" -feedback_login_required = "Você deve entrar na sua conta antes." feedback_name = "Nome" Field of activity = "Campo de atividade" File Description = "Descrição de arquivo" diff --git a/languages/pt.ini b/languages/pt.ini index ead2725652a..2532222d5a3 100644 --- a/languages/pt.ini +++ b/languages/pt.ini @@ -335,7 +335,6 @@ Favorites = "Favoritos" Fee = "Multas" Feedback = "Comentário" feedback_email = "Email" -feedback_login_required = "Você deve entrar na sua conta antes." feedback_name = "Nome" Filter = "Filtro" filter_tags = "Filtro de Trags" diff --git a/languages/ru.ini b/languages/ru.ini index 38a94e1542f..ea53b1ffa8f 100644 --- a/languages/ru.ini +++ b/languages/ru.ini @@ -366,7 +366,6 @@ Favorites = "Избранное" Fee = "взноÑ" Feedback = "обратной ÑвÑзи" feedback_email = "Email" -feedback_login_required = "Сначала войдите в ÑиÑтему." feedback_name = "ИмÑ" File Description = "ОпиÑание файла" Filter = "Фильтр" diff --git a/languages/sl.ini b/languages/sl.ini index 907889adfa6..22fd6f2ba65 100644 --- a/languages/sl.ini +++ b/languages/sl.ini @@ -291,7 +291,6 @@ Favorites = "Priljubljene" Fee = "ÄŒlanarina/zamudnina" Feedback = "PiÅ¡ite nam" feedback_email = "Email" -feedback_login_required = "Najprej se morate prijaviti." feedback_name = "Ime" Filter = "Filter" filter_tags = "Filter oznake" diff --git a/languages/sv.ini b/languages/sv.ini index 826fc1fba86..c57b6371790 100644 --- a/languages/sv.ini +++ b/languages/sv.ini @@ -404,7 +404,6 @@ Favorites = "Favoriter" Fee = "Avgift" Feedback = "Respons" feedback_email = "E-post" -feedback_login_required = "Du mÃ¥ste logga in först." feedback_name = "Ditt namn" Field of activity = "VerksamhetsomrÃ¥de" File Description = "Filbeskrivning" diff --git a/languages/tr.ini b/languages/tr.ini index e88f1c97648..5977d7e7de6 100644 --- a/languages/tr.ini +++ b/languages/tr.ini @@ -417,7 +417,6 @@ Favorites = "Favorilerim" Fee = "Gecikme Cezası" Feedback = "Görüsleriniz" feedback_email = "Eposta" -feedback_login_required = "Ä°lk önce giriÅŸ yapmalısınız." feedback_name = "Adiniz" Field of activity = "Aktivite Alanı" File Description = "Dosya tanımı" diff --git a/languages/vi.ini b/languages/vi.ini index bd61f9fa6db..81c66d0d6e2 100644 --- a/languages/vi.ini +++ b/languages/vi.ini @@ -388,7 +388,6 @@ Favorites = "Các mục đã lÆ°u" Fee = "Há»c phÃ" Feedback = "Phản hồi" feedback_email = "Email" -feedback_login_required = "Bạn phải đăng nháºp trÆ°á»›c." feedback_name = "Tên" Field of activity = "LÄ©nh vá»±c hoạt Ä‘á»™ng" File Description = "Mô tả táºp tin" diff --git a/languages/zh-cn.ini b/languages/zh-cn.ini index bbd456e3e64..c34d7c13ad4 100644 --- a/languages/zh-cn.ini +++ b/languages/zh-cn.ini @@ -240,7 +240,6 @@ fav_list_delete_fail = "很抱æ‰ï¼Œå‘生错误. æ‚¨çš„åˆ—è¡¨æ²¡è¢«åˆ é™¤." Favorites = "最爱" Fee = "è´¹" feedback_email = "电å邮件" -feedback_login_required = "您必须先登录" Find = "检索" Find More = "查找更多" Find New Items = "寻找新项目" diff --git a/languages/zh.ini b/languages/zh.ini index 4079b9147f6..258bf7edbd0 100644 --- a/languages/zh.ini +++ b/languages/zh.ini @@ -240,7 +240,6 @@ fav_list_delete_fail = "很抱æ‰ï¼Œç™¼ç”ŸéŒ¯èª¤. 您的列表沒被刪除." Favorites = "最愛" Fee = "è²»" feedback_email = "é›»å郵件" -feedback_login_required = "æ‚¨å¿…é ˆå…ˆç™»éŒ„" Find = "檢索" Find More = "查找更多" Find New Items = "å°‹æ‰¾æ–°é …ç›®" diff --git a/module/VuFind/src/VuFind/Controller/FeedbackController.php b/module/VuFind/src/VuFind/Controller/FeedbackController.php index cc944dc4544..21880527c2e 100644 --- a/module/VuFind/src/VuFind/Controller/FeedbackController.php +++ b/module/VuFind/src/VuFind/Controller/FeedbackController.php @@ -61,6 +61,10 @@ class FeedbackController extends AbstractBase throw new \VuFind\Exception\Forbidden("Form '$formId' is disabled"); } + if (!$user && $form->showOnlyForLoggedUsers()) { + return $this->forceLogin(); + } + $view = $this->createViewModel(compact('form', 'formId', 'user')); $view->useRecaptcha = $this->recaptcha()->active('feedback') && $form->useCaptcha(); diff --git a/themes/bootstrap3/templates/feedback/form.phtml b/themes/bootstrap3/templates/feedback/form.phtml index 5f427435539..2878cc3ffd2 100644 --- a/themes/bootstrap3/templates/feedback/form.phtml +++ b/themes/bootstrap3/templates/feedback/form.phtml @@ -24,42 +24,36 @@ <?php endif; ?> <?=$this->flashmessages()?> - <?php if ($form->showOnlyForLoggedUsers() && !$this->user): ?> - <div class="form-group"> - <p><?=$this->translate('feedback_login_required')?></p> - <a href="<?=$this->url('myresearch-userlogin') ?>" class="btn btn-primary" data-lightbox title="Login"><i class="fa fa-sign-in" aria-hidden="true" data-lightbox-onclose="window.location.href='<?=$this->escapeHtmlAttr($formUrl) ?>'"></i> <?=$this->transEsc("Login") ?></a> - </div> - <?php else: ?> - <?= $this->form()->openTag($form); ?> - <?php if ($helpPre): ?> - <div class="form-group"> - <div class="form-info pre"> - <?=$helpPre?> - </div> + <?= $this->form()->openTag($form); ?> + <?php if ($helpPre): ?> + <div class="form-group"> + <div class="form-info pre"> + <?=$helpPre?> </div> - <?php endif ?> + </div> + <?php endif ?> - <?php $currentGroup = null; ?> - <?php foreach($form->getElements() as $el): ?> - <?php - $formElement = $form->get($el['name']); + <?php $currentGroup = null; ?> + <?php foreach($form->getElements() as $el): ?> + <?php + $formElement = $form->get($el['name']); - // Group form elements into field sets - $handleGroup = $group = null; - if (isset($el['group']) && !empty($el['group'])) { - $group = $el['group']; - } - if ($group && $currentGroup === null) { - $handleGroup = 'open'; - $currentGroup = $group; - } elseif ($currentGroup && !$group) { - $handleGroup = 'close'; - $currentGroup = null; - } elseif ($currentGroup !== $group) { - $handleGroup = 'openAndClose'; - $currentGroup = $group; - } - ?> + // Group form elements into field sets + $handleGroup = $group = null; + if (isset($el['group']) && !empty($el['group'])) { + $group = $el['group']; + } + if ($group && $currentGroup === null) { + $handleGroup = 'open'; + $currentGroup = $group; + } elseif ($currentGroup && !$group) { + $handleGroup = 'close'; + $currentGroup = null; + } elseif ($currentGroup !== $group) { + $handleGroup = 'openAndClose'; + $currentGroup = $group; + } + ?> <?php if (in_array($handleGroup, ['close', 'openAndClose'])): ?> </div> @@ -96,5 +90,4 @@ </div> <?php endforeach ?> <?= $this->form()->closeTag() ?> - <?php endif ?> <?php if (!$this->inLightbox): ?></div><?php endif; ?> -- GitLab