MDL-59409 admin: check access to every setting in category

This commit is contained in:
Marina Glancy
2017-07-04 10:06:01 +08:00
committed by Jake Dallimore
parent 6d0649e537
commit 033429a51c
2 changed files with 9 additions and 5 deletions
+8 -4
View File
@@ -7397,21 +7397,25 @@ function admin_find_write_settings($node, $data) {
}
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;
}