l('admin/people/permissions', 'admin/people/permissions')))); } /** * Implements hook_schema(). */ function security_review_schema() { $schema['security_review'] = array( 'fields' => array( 'namespace' => array( 'type' => 'varchar', 'length' => 160, 'not null' => TRUE, 'default' => '', ), 'reviewcheck' => array( 'type' => 'varchar', 'length' => 160, 'not null' => TRUE, 'default' => '', ), 'result' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, ), 'lastrun' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, ), 'skip' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, ), 'skiptime' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, ), 'skipuid' => array( 'type' => 'int', 'default' => NULL ), ), 'primary key' => array('namespace', 'reviewcheck'), ); return $schema; } /** * Implements hook_uninstall(). */ function security_review_uninstall() { variable_del('security_review_untrusted_roles'); variable_del('security_review_log'); variable_del('security_review_last_run'); } /** * Empty Security Review check result table for a fresh start on Drupal 7. */ function security_review_update_7000(&$sandbox) { db_truncate('security_review')->execute(); return t('Security Review table truncated.'); } /** * Implements hook_requirements(). */ function security_review_requirements($phase) { $requirements = array(); switch ($phase) { case 'runtime': $failed_checks = FALSE; $checks = security_review_get_stored_results(); foreach ($checks as $check) { if ($check['result'] === FALSE && !$check['skip']) { $failed_checks = TRUE; break; } } $url = url('admin/reports/security-review'); if (empty($checks)) { $severity = REQUIREMENT_WARNING; $value = t('The Security Review checklist has not been run. Run the checklist', array('!url' => $url)); } elseif ($failed_checks) { $severity = REQUIREMENT_WARNING; $value = t('There are failed Security Review checks. Review the checklist', array('!url' => $url)); } else { $severity = REQUIREMENT_OK; $value = t('Passing all non-ignored Security Review checks. Review the checklist', array('!url' => $url)); } $requirements['security_review'] = array( 'title' => t('Security Review'), 'severity' => $severity, 'value' => $value, ); break; } return $requirements; }