Skip to content

Commit

Permalink
Refactor settings handling when propagating to ensure safe access to …
Browse files Browse the repository at this point in the history
…child settings properties, (#74)

This is a fix block_opencast PR 412
  • Loading branch information
ferishili authored Jan 9, 2025
1 parent cc2ba67 commit 2b7cc7b
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions classes/settings/admin_setting_configtextwithvalidation.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ public function write_setting($data) {
$toolsettings = $adminroot->locate('tool_opencast');
foreach ($toolsettings->get_children() as $child) {
if (substr($child->name, 0, 28) == 'tool_opencast_configuration_') {
foreach ($child->settings as $name => $setting) {
$toolchildsettings = property_exists($child, 'settings') ? $child->settings : [];
foreach ($toolchildsettings as $name => $setting) {
$data = $setting->get_setting();
if (is_null($data)) {
$data = $setting->get_defaultsetting();
Expand All @@ -73,7 +74,8 @@ public function write_setting($data) {
foreach ($blocksettings->get_children() as $category) {
if ($category instanceof admin_category) {
foreach ($category->get_children() as $child) {
foreach ($child->settings as $name => $setting) {
$blockchildsettings = property_exists($child, 'settings') ? $child->settings : [];
foreach ($blockchildsettings as $name => $setting) {
$data = $setting->get_setting();
if (is_null($data)) {
$data = $setting->get_defaultsetting();
Expand All @@ -90,7 +92,8 @@ public function write_setting($data) {
// Activity settings.
if (core_plugin_manager::instance()->get_plugin_info('mod_opencast')) {
$modsettings = $adminroot->locate('modsettingopencast');
foreach ($modsettings->settings as $name => $setting) {
$modchildsettings = property_exists($modsettings, 'settings') ? $modsettings->settings : [];
foreach ($modchildsettings as $name => $setting) {
$data = $setting->get_setting();
if (is_null($data)) {
$data = $setting->get_defaultsetting();
Expand Down

0 comments on commit 2b7cc7b

Please sign in to comment.