From 80fcb757898f46618efb6ea8f85dde505ed35bd6 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Sat, 11 Mar 2023 11:54:01 +0000
Subject: [PATCH] prevent php8 warnings, fixes #2279

Closes #2279

Merge request studip/studip!1504
---
 lib/classes/JsonApi/Schemas/Courseware/Instance.php |  2 ++
 lib/models/Courseware/Instance.php                  | 10 +++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/lib/classes/JsonApi/Schemas/Courseware/Instance.php b/lib/classes/JsonApi/Schemas/Courseware/Instance.php
index ff109661a41..c5224756844 100644
--- a/lib/classes/JsonApi/Schemas/Courseware/Instance.php
+++ b/lib/classes/JsonApi/Schemas/Courseware/Instance.php
@@ -26,6 +26,8 @@ class Instance extends SchemaProvider
 
     /**
      * {@inheritdoc}
+     *
+     * @param \Courseware\Instance $resource
      */
     public function getAttributes($resource, ContextInterface $context): iterable
     {
diff --git a/lib/models/Courseware/Instance.php b/lib/models/Courseware/Instance.php
index 5cff95314bd..97990f6a58a 100644
--- a/lib/models/Courseware/Instance.php
+++ b/lib/models/Courseware/Instance.php
@@ -284,7 +284,11 @@ class Instance
      */
     public function isValidCertificateSettings($certificateSettings): bool
     {
-        return (int) $certificateSettings['threshold'] >= 0 && (int) $certificateSettings['threshold'] <= 100;
+        return !isset($certificateSettings['threshold'])
+            || (
+                $certificateSettings['threshold'] >= 0
+                && $certificateSettings['threshold'] <= 100
+            );
     }
 
     private function validateCertificateSettings($certificateSettings): void
@@ -335,7 +339,7 @@ class Instance
      */
     public function isValidReminderSettings($reminderSettings): bool
     {
-        $valid = in_array($reminderSettings['interval'], [0, 7, 14, 30, 90, 180, 365]);
+        $valid = in_array($reminderSettings['interval'] ?? 0, [0, 7, 14, 30, 90, 180, 365]);
 
         return $valid;
     }
@@ -388,7 +392,7 @@ class Instance
      */
     public function isValidResetProgressSettings($resetProgressSettings): bool
     {
-        $valid = in_array($resetProgressSettings['interval'], [0, 14, 30, 90, 180, 365]);
+        $valid = in_array($resetProgressSettings['interval'] ?? 0, [0, 14, 30, 90, 180, 365]);
 
         return $valid;
     }
-- 
GitLab