MDL-42863 make capabilities overview more fault-tolerant.

This commit is contained in:
Tim Hunt
2013-11-15 15:08:32 +00:00
parent 5e6da548d7
commit 02793f156c
+9 -3
View File
@@ -74,9 +74,15 @@ function tool_capability_calculate_role_data($capability, array $roles) {
// Put the contexts into a tree structure.
foreach ($contexts as $conid => $con) {
$context = context::instance_by_id($conid);
$parentcontext = $context->get_parent_context();
if ($parentcontext) {
$contexts[$parentcontext->id]->children[] = $conid;
try {
$parentcontext = $context->get_parent_context();
if ($parentcontext) { // Will be false if $context is the system context.
$contexts[$parentcontext->id]->children[] = $conid;
}
} catch (dml_missing_record_exception $e) {
// Ignore corrupt context tree structure here. Don't let it break
// showing the rest of the report.
continue;
}
}