. /** * Security overview report * * @package report * @subpackage security * @copyright 2008 petr Skoda * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ define('NO_OUTPUT_BUFFERING', true); require('../../config.php'); require_once($CFG->dirroot.'/report/security/locallib.php'); require_once($CFG->libdir.'/adminlib.php'); require_login(); $issue = optional_param('issue', '', PARAM_ALPHANUMEXT); // show detailed info about one issue only $issues = report_security_get_issue_list(); // test if issue valid string if (array_search($issue, $issues, true) === false) { $issue = ''; } // we may need a bit more memory and this may take a long time to process raise_memory_limit(MEMORY_EXTRA); @set_time_limit(0); // Print the header. admin_externalpage_setup('reportsecurity', '', null, '', array('pagelayout'=>'report')); echo $OUTPUT->header(); echo $OUTPUT->heading(get_string('pluginname', 'report_security')); echo '
'.get_string('timewarning', 'report_security').'
'; $strok = ''.get_string('statusok', 'report_security').''; $strinfo = ''.get_string('statusinfo', 'report_security').''; $strwarning = ''.get_string('statuswarning', 'report_security').''; $strserious = ''.get_string('statusserious', 'report_security').''; $strcritical = ''.get_string('statuscritical', 'report_security').''; $strissue = get_string('issue', 'report_security'); $strstatus = get_string('status', 'report_security'); $strdesc = get_string('description', 'report_security'); $strconfig = get_string('configuration', 'report_security'); $statusarr = array(REPORT_SECURITY_OK => $strok, REPORT_SECURITY_INFO => $strinfo, REPORT_SECURITY_WARNING => $strwarning, REPORT_SECURITY_SERIOUS => $strserious, REPORT_SECURITY_CRITICAL => $strcritical); $url = "$CFG->wwwroot/report/security/index.php"; if ($issue and ($result = $issue(true))) { report_security_hide_timearning(); $table = new html_table(); $table->head = array($strissue, $strstatus, $strdesc, $strconfig); $table->size = array('30%', '10%', '50%', '10%' ); $table->align = array('left', 'left', 'left', 'left'); $table->attributes = array('class'=>'scurityreporttable generaltable'); $table->data = array(); // print detail of one issue only $row = array(); $row[0] = report_security_doc_link($issue, $result->name); $row[1] = $statusarr[$result->status]; $row[2] = $result->info; $row[3] = is_null($result->link) ? ' ' : $result->link; $PAGE->set_docs_path('report/security/' . $issue); $table->data[] = $row; echo html_writer::table($table); echo $OUTPUT->box($result->details, 'generalbox boxwidthnormal boxaligncenter'); // TODO: add proper css echo $OUTPUT->continue_button($url); } else { report_security_hide_timearning(); $table = new html_table(); $table->head = array($strissue, $strstatus, $strdesc); $table->size = array('30%', '10%', '60%' ); $table->align = array('left', 'left', 'left'); $table->attributes = array('class'=>'scurityreporttable generaltable'); $table->data = array(); foreach ($issues as $issue) { $result = $issue(false); if (!$result) { // ignore this test continue; } $row = array(); $row[0] = "$result->name"; $row[1] = $statusarr[$result->status]; $row[2] = $result->info; $table->data[] = $row; } echo html_writer::table($table); } echo $OUTPUT->footer();