Skip to content
Snippets Groups Projects
Commit cd4f2f68 authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms Committed by Jan-Hendrik Willms
Browse files

fixes #3550

Closes #3550

Merge request studip/studip!2438
parent f00d54a5
No related branches found
No related tags found
No related merge requests found
Showing with 89 additions and 18 deletions
......@@ -91,6 +91,24 @@ class Accessibility_FormsController extends StudipController
)
);
// Add a honeypot value and timestamp
$personal_data_part->addInput(
new \Studip\Forms\TextInput(
'homepage',
_('Homepage'),
'',
[
'aria-hidden' => 'true',
'class' => 'sr-only',
'placeholder' => _('Dieses Feld nicht ausfüllen'),
'title' => _('Dieses Feld nicht ausfüllen'),
]
)
);
$this->form->addInput(
new \Studip\Forms\HiddenInput('time', '', time())
);
$personal_data_part->addText(sprintf('<p>%s</p>',
_('Informationen zum Datenschutz dieses Formulars finden Sie in der Datenschutzerklärung.')));
......@@ -118,6 +136,13 @@ class Accessibility_FormsController extends StudipController
$this->form->setURL($this->report_barrierURL());
$this->form->addStoreCallback(
function ($form, $form_values) {
if (
$form_values['time'] >= time() - 2
|| !empty($form_values['homepage'])
) {
return 0;
}
$recipients = Config::get()->ACCESSIBILITY_RECEIVER_EMAIL;
if (empty($recipients)) {
//Fallback: Use the UNI_CONTACT mail address:
......
<?php
final class AddReportBarrierModeConfiguration extends Migration
{
public function description()
{
return 'Adds the configuration option REPORT_BARRIER_MODE';
}
protected function up()
{
$query = "INSERT IGNORE INTO `config` (
`field`, `value`, `type`, `range`,
`section`, `description`,
`mkdate`, `chdate`
) VALUES (
'REPORT_BARRIER_MODE', 'on', 'string', 'global',
'accessibility', 'Einstellungen zum Formular zu Melden einer Barriere (\"on\" = immer an, \"logged-in\" = nur für angemeldete Personen, \"off\" = ausgeschaltet)',
UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
)";
DBManager::get()->exec($query);
}
protected function down()
{
$query = "DELETE config, config_values
FROM `config`
LEFT JOIN `config_values` USING(`field`)
WHERE `field` = 'REPORT_BARRIER_MODE'";
DBManager::get()->exec($query);
}
}
......@@ -62,6 +62,13 @@ class FooterNavigation extends Navigation
);
}
if (
Config::get()->REPORT_BARRIER_MODE === 'on'
|| (
Config::get()->REPORT_BARRIER_MODE === 'logged-in'
&& User::findCurrent()
)
) {
$this->addSubNavigation(
'report_barrier',
new Navigation(
......@@ -72,6 +79,7 @@ class FooterNavigation extends Navigation
)
)
);
}
$easy_read_url = Config::get()->EASY_READ_URL;
if ($this->checkSiteinfoURL($easy_read_url)) {
......
......@@ -138,3 +138,10 @@ div.indent { margin-left: 2em; }
}
}
}
// Hide honeypot field from report barrier form
body#accessibility-forms-report_barrier {
.formpart[data-form-input-for="homepage"] {
@extend .sr-only;
}
}
<div class="formpart">
<div class="formpart" data-form-input-for="<?= htmlReady($name) ?>">
<label<?= ($this->required ? ' class="studiprequired"' : '') ?> for="<?= $id ?>">
<span class="textlabel">
<?= htmlReady($this->title) ?>
......
<div class="formpart">
<div class="formpart" data-form-input-for="<?= htmlReady($name) ?>">
<label<?= ($this->required ? ' class="studiprequired"' : '') ?> for="<?= $id ?>">
<span class="textlabel">
<?= htmlReady($this->title) ?>
......
<div class="formpart">
<div class="formpart" data-form-input-for="<?= htmlReady($name) ?>">
<label<?= ($this->required ? ' class="studiprequired"' : '') ?> for="<?= $id ?>">
<span class="textlabel">
<?= htmlReady($this->title) ?>
......
<div class="formpart">
<div class="formpart" data-form-input-for="<?= htmlReady($name) ?>">
<label<?= ($this->required ? ' class="studiprequired"' : '') ?> for="<?= $id ?>">
<span class="textlabel">
<?= htmlReady($this->title) ?>
......
<div class="formpart">
<div class="formpart" data-form-input-for="<?= htmlReady($name) ?>">
<label<?= ($this->required ? ' class="studiprequired"' : '') ?> for="<?= $id ?>">
<span class="textlabel">
<?= htmlReady($this->title) ?>
......
<div class="formpart">
<div class="formpart" data-form-input-for="<?= htmlReady($name) ?>">
<label<?= ($this->required ? ' class="studiprequired"' : '') ?> for="<?= $id ?>">
<span class="textlabel">
<?= htmlReady($this->title) ?>
......
<div class="formpart">
<div class="formpart" data-form-input-for="<?= htmlReady($name) ?>">
<label<?= ($this->required ? ' class="studiprequired"' : '') ?> for="<?= $id ?>">
<span class="textlabel">
<?= htmlReady($this->title) ?>
......
<div class="formpart">
<div class="formpart" data-form-input-for="<?= htmlReady($name) ?>">
<label<?= ($this->required ? ' class="studiprequired"' : '') ?> for="<?= $id ?>">
<span class="textlabel">
<?= htmlReady($this->title) ?>
......
<div class="formpart">
<div class="formpart" data-form-input-for="<?= htmlReady($name) ?>">
<label<?= ($this->required ? ' class="studiprequired"' : '') ?> for="<?= $id ?>">
<span class="textlabel">
<?= htmlReady($this->title) ?>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment