diff --git a/config/config.default.php b/config/config.default.php
index 1896fbb0..97da2129 100644
--- a/config/config.default.php
+++ b/config/config.default.php
@@ -326,6 +326,10 @@ return [
# Instruction in accordance with § 43 Para. 1 of the German Infection Protection Act (IfSG)
'ifsg_enabled' => (bool) env('IFSG_ENABLED', false),
+ # Instruction only onsite in accordance with § 43 Para. 1 of the German Infection Protection Act (IfSG)
+ 'ifsg_light_enabled' => (bool) env('IFSG_LIGHT_ENABLED', false)
+ && env('IFSG_ENABLED', false),
+
// Available locales in /resources/lang/
'locales' => [
'de_DE' => 'Deutsch',
diff --git a/resources/views/pages/settings/certificates.twig b/resources/views/pages/settings/certificates.twig
index cc126b96..81d05107 100644
--- a/resources/views/pages/settings/certificates.twig
+++ b/resources/views/pages/settings/certificates.twig
@@ -11,9 +11,11 @@
{{ m.info(__('settings.certificates.info')) }}
- {{ f.checkbox('ifsg_certificate_light', __('settings.ifsg_light'), {
- 'checked': ifsg_certificate_light,
- }) }}
+ {% if config('ifsg_light_enabled') %}
+ {{ f.checkbox('ifsg_certificate_light', __('settings.ifsg_light'), {
+ 'checked': ifsg_certificate_light,
+ }) }}
+ {% endif %}
{{ f.checkbox('ifsg_certificate', __('settings.ifsg'), {
'checked': ifsg_certificate,
}) }}
diff --git a/src/Controllers/SettingsController.php b/src/Controllers/SettingsController.php
index b84b0891..fc0e0846 100644
--- a/src/Controllers/SettingsController.php
+++ b/src/Controllers/SettingsController.php
@@ -233,9 +233,9 @@ class SettingsController extends BaseController
return $this->response->withView(
'pages/settings/certificates',
[
- 'settings_menu' => $this->settingsMenu(),
+ 'settings_menu' => $this->settingsMenu(),
'ifsg_certificate_light' => $user->license->ifsg_certificate_light,
- 'ifsg_certificate' => $user->license->ifsg_certificate,
+ 'ifsg_certificate' => $user->license->ifsg_certificate,
]
);
}
@@ -252,7 +252,9 @@ class SettingsController extends BaseController
throw new HttpNotFound('ifsg.disabled');
}
- $user->license->ifsg_certificate_light = !$data['ifsg_certificate'] && $data['ifsg_certificate_light'];
+ if (config('ifsg_light_enabled')) {
+ $user->license->ifsg_certificate_light = !$data['ifsg_certificate'] && $data['ifsg_certificate_light'];
+ }
$user->license->ifsg_certificate = (bool) $data['ifsg_certificate'];
$user->license->save();
diff --git a/tests/Unit/Controllers/SettingsControllerTest.php b/tests/Unit/Controllers/SettingsControllerTest.php
index 67abe2a8..0b37cf5e 100644
--- a/tests/Unit/Controllers/SettingsControllerTest.php
+++ b/tests/Unit/Controllers/SettingsControllerTest.php
@@ -583,6 +583,7 @@ class SettingsControllerTest extends ControllerTest
public function testIfsgCertificate(): void
{
config(['ifsg_enabled' => true]);
+ config(['ifsg_light_enabled' => true]);
$this->setExpects($this->auth, 'user', null, $this->user, $this->once());
$this->response->expects($this->once())
@@ -629,6 +630,7 @@ class SettingsControllerTest extends ControllerTest
public function testSaveIfsgCertificateLight(): void
{
config(['ifsg_enabled' => true]);
+ config(['ifsg_light_enabled' => true]);
$this->setExpects($this->auth, 'user', null, $this->user, $this->once());
$body = [