aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2026-01-06 16:58:32 +0100
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2026-01-06 16:58:32 +0100
commiteb1bfff907e78660d9d8b7509bf32d137c9e2c84 (patch)
treeb10409ef36a45a7858875b07b33b7f69a886f730
parent23d4aedd3ee2b8bcdbc468e2716a92c73f98d731 (diff)
really catch all errors when loading admission rules, fixes #6145
Closes #6145 Merge request studip/studip!4659
-rw-r--r--lib/classes/admission/AdmissionRule.php19
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/classes/admission/AdmissionRule.php b/lib/classes/admission/AdmissionRule.php
index fbac0d8..d6cd03a 100644
--- a/lib/classes/admission/AdmissionRule.php
+++ b/lib/classes/admission/AdmissionRule.php
@@ -48,15 +48,16 @@ abstract class AdmissionRule
StudipAutoloader::addAutoloadPath($GLOBALS['STUDIP_BASE_PATH'] . DIRECTORY_SEPARATOR . $row['path']);
}
- try {
- $rule = new $className();
- self::$rules[$className] = [
- 'id' => $row['id'],
- 'name' => $className::getName(),
- 'description' => $className::getDescription(),
- 'active' => (bool) $row['active'],
- ];
- } catch (Exception $e) {}
+ if (!is_subclass_of($className, self::class)) {
+ return;
+ }
+
+ self::$rules[$className] = [
+ 'id' => $row['id'],
+ 'name' => $className::getName(),
+ 'description' => $className::getDescription(),
+ 'active' => (bool) $row['active'],
+ ];
}
);
}