true, 'section' => 'rolemapping', 'matrix' => roles::matrix_from_rules($rules), 'message' => get_string('reset_success_rolemapping', 'meetletacbfree'), ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); exit; } if ($section === 'featureaccess') { $matrix = featureaccess::builtin_defaults(); $json = json_encode($matrix, JSON_UNESCAPED_UNICODE); set_config('featureaccess', $json, 'meetletacbfree'); echo json_encode([ 'success' => true, 'section' => 'featureaccess', 'matrix' => $matrix, 'message' => get_string('reset_success_featureaccess', 'meetletacbfree'), ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); exit; } throw new moodle_exception('invalidparameter'); } catch (Throwable $e) { $error = $e->getMessage(); if ($e instanceof moodle_exception) { $info = get_exception_info($e); if (!empty($info->message)) { $error = (string)$info->message; } } echo json_encode([ 'success' => false, 'error' => $error !== '' ? $error : get_string('reset_error', 'meetletacbfree'), ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); }