$savebutton = false;
$outputhtml = '';
foreach ($settingspage->children as $childpage) {
- if ($childpage->is_hidden()) {
+ if ($childpage->is_hidden() || !$childpage->check_access()) {
continue;
}
if ($childpage instanceof admin_externalpage) {
}
if ($node instanceof admin_category) {
- $entries = array_keys($node->children);
- foreach ($entries as $entry) {
- $return = array_merge($return, admin_find_write_settings($node->children[$entry], $data));
+ if ($node->check_access()) {
+ $entries = array_keys($node->children);
+ foreach ($entries as $entry) {
+ $return = array_merge($return, admin_find_write_settings($node->children[$entry], $data));
+ }
}
} else if ($node instanceof admin_settingpage) {
+ if ($node->check_access()) {
foreach ($node->settings as $setting) {
$fullname = $setting->get_full_name();
if (array_key_exists($fullname, $data)) {
$return[$fullname] = $setting;
}
}
-
}
+ }
+
return $return;
}