import vhost-audit
This commit is contained in:
120
file.php
Normal file
120
file.php
Normal file
@ -0,0 +1,120 @@
|
||||
<?
|
||||
/*
|
||||
TODO:
|
||||
- Add garbage collection for expired acknowledgements
|
||||
*/
|
||||
|
||||
if ( isset($_POST['site']) ) {
|
||||
$site_path = $_POST['site'];
|
||||
$site = preg_replace('#/www/([^/]+)/htdocs#', '\1', $site_path);
|
||||
|
||||
if ( $_POST['action'] == 'acknowledge' ) {
|
||||
$file = $_POST['file'];
|
||||
$ignore_data = site_ignore_file_read($site);
|
||||
if ( isset($ignore_data[$file]) && $ignore_data[$file]['action'] == $_POST['action']) {
|
||||
# already set. delete it.
|
||||
unset($ignore_data[$file]);
|
||||
$result = "Removed Acknowledgment of file " . $_POST['file']
|
||||
. ' in ' . $site;
|
||||
}
|
||||
else {
|
||||
$ignore_data[$file] = array(
|
||||
'action' => $_POST['action'],
|
||||
'date' => time()
|
||||
);
|
||||
$result = 'Acknowledging file ' . $_POST['file'] . ' in ' . $site;
|
||||
}
|
||||
if ( site_ignore_file_write($site, $ignore_data) ) {
|
||||
$response = array(
|
||||
'status' => 'ok',
|
||||
'message' => $result
|
||||
);
|
||||
}
|
||||
else {
|
||||
$response = array(
|
||||
'status' => 'error',
|
||||
'message' => 'Failed to write ignore-file.'
|
||||
);
|
||||
}
|
||||
}
|
||||
elseif ( $_POST['action'] == 'ignore_file' ) {
|
||||
$file = $_POST['file'];
|
||||
$ignore_data = site_ignore_file_read($site);
|
||||
$ignore_data[$file] = array(
|
||||
'action' => $_POST['action'],
|
||||
'date' => time()
|
||||
);
|
||||
if ( site_ignore_file_write($site, $ignore_data) ) {
|
||||
$response = array(
|
||||
'status' => 'ok',
|
||||
'message' => 'Ignoring file ' . $_POST['file'] . ' in ' . $site
|
||||
);
|
||||
}
|
||||
else {
|
||||
$response = array(
|
||||
'status' => 'error',
|
||||
'message' => 'Failed to write ignore-file.'
|
||||
);
|
||||
}
|
||||
}
|
||||
elseif ( $_POST['action'] == 'ignore_dir' ) {
|
||||
$file = $_POST['file'];
|
||||
$ignore_data = site_ignore_file_read($site);
|
||||
$ignore_data[$file] = array(
|
||||
'action' => $_POST['action'],
|
||||
'date' => time()
|
||||
);
|
||||
if ( site_ignore_file_write($site, $ignore_data) ) {
|
||||
$response = array(
|
||||
'status' => 'ok',
|
||||
'message' => 'Ignoring directory ' . $_POST['file'] . ' in ' . $site
|
||||
);
|
||||
}
|
||||
else {
|
||||
$response = array(
|
||||
'status' => 'error',
|
||||
'message' => 'Failed to write ignore-file.'
|
||||
);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$response = array(
|
||||
'status' => 'error',
|
||||
'errors' => 'Action missing or invalid.'
|
||||
);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$response = array(
|
||||
'status' => 'error',
|
||||
'errors' => 'Site missing or invalid.'
|
||||
);
|
||||
}
|
||||
|
||||
header('Content-type: application/json');
|
||||
echo(json_encode($response, JSON_PRETTY_PRINT));
|
||||
|
||||
###
|
||||
|
||||
function site_ignore_file_read ($site) {
|
||||
$aout = array();
|
||||
$ignore_file = 'json/' . $site . '-ignore.json';
|
||||
if ( file_exists($ignore_file) ) {
|
||||
$ignore_data = file_get_contents($ignore_file);
|
||||
$aout = @json_decode($ignore_data, TRUE);
|
||||
if ($aout === null && json_last_error() !== JSON_ERROR_NONE) {
|
||||
$aout = array();
|
||||
}
|
||||
}
|
||||
|
||||
return $aout;
|
||||
}
|
||||
|
||||
|
||||
function site_ignore_file_write ($site, $data) {
|
||||
$ignore_file = 'json/' . $site . '-ignore.json';
|
||||
$json = json_encode($data, JSON_PRETTY_PRINT);
|
||||
return file_put_contents($ignore_file, $json);
|
||||
}
|
||||
|
||||
?>
|
Reference in New Issue
Block a user