function _security_review_settings_submit in Security Review 7
Same name and namespace in other branches
- 6 security_review.module \_security_review_settings_submit()
1 string reference to '_security_review_settings_submit'
- security_review_settings in ./
security_review.pages.inc - Module settings form.
File
- ./
security_review.pages.inc, line 223 - security_review.pages.inc
Code
function _security_review_settings_submit($form, &$form_state) {
global $user;
$log = $form_state['values']['security_review_log'];
// Set checked.
module_load_include('inc', 'security_review');
$checklist = security_review_get_checklist();
$stored = array();
$results = db_query("SELECT namespace, reviewcheck, result, lastrun, skip, skiptime, skipuid FROM {security_review}");
while ($record = $results
->fetchAssoc()) {
$stored[$record['namespace']][$record['reviewcheck']] = $record;
}
foreach ($checklist as $module => $checks) {
foreach ($checks as $check_name => $check) {
$record = new stdClass();
$update = array();
// Toggle the skip.
if (isset($stored[$module][$check_name]) && $stored[$module][$check_name]['skip'] == 1 && $form_state['values']['security_review_skip'][$check_name] === 0) {
// We were skipping, so stop skipping and clear skip identifiers.
$record->namespace = $module;
$record->reviewcheck = $check_name;
$record->skip = FALSE;
$record->skiptime = 0;
$record->skipuid = NULL;
$result = drupal_write_record('security_review', $record, array(
'namespace',
'reviewcheck',
));
if ($log) {
$variables = array(
'!name' => $check['title'],
);
_security_review_log($module, $check_name, '!name check no longer skipped', $variables, WATCHDOG_INFO);
}
}
elseif ($form_state['values']['security_review_skip'][$check_name] !== 0) {
// Start skipping and record who made the decision and when.
if (isset($stored[$module][$check_name])) {
$update = array(
'namespace',
'reviewcheck',
);
}
$record->namespace = $module;
$record->reviewcheck = $check_name;
$record->skip = TRUE;
$record->skiptime = REQUEST_TIME;
$record->skipuid = $user->uid;
$result = drupal_write_record('security_review', $record, $update);
if ($log) {
$variables = array(
'!name' => $check['title'],
);
_security_review_log($module, $check_name, '!name check skipped', $variables, WATCHDOG_INFO);
}
}
}
}
// Unset security_review_skip to keep it from being written to a variable.
unset($form_state['values']['security_review_skip']);
// Set check-specific settings.
foreach ($form_state['values']['check_settings'] as $variable_name => $value) {
variable_set($variable_name, $value);
}
}