20 lines
2.3 KiB
PHP
20 lines
2.3 KiB
PHP
<?php
|
|
include 'auth.php';
|
|
$page_title = 'Updates - BastionGuard WebUI';
|
|
$active_page = 'update.php';
|
|
$output = '';
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
csrf_validate();
|
|
$action = $_POST['action'] ?? '';
|
|
if ($action === 'freshclam') $res = bg_run('sudo -n freshclam 2>&1', 600);
|
|
elseif ($action === 'sanesecurity') $res = bg_run('sudo -n /usr/bin/BastionGuard-sanesecurity-update 2>&1 || sudo -n /usr/local/bin/BastionGuard-sanesecurity-update 2>&1', 600);
|
|
elseif ($action === 'restart-freshclam') $res = bg_service_action(['clamav-freshclam.service','freshclam.service'], 'restart');
|
|
else $res = ['code'=>2,'output'=>'Unknown action.'];
|
|
$output = $res['output'] . "\n\nExit code: " . $res['code'];
|
|
}
|
|
$versions = bg_clamdb_versions();
|
|
include 'includes/header.php'; include 'includes/sidebar.php';
|
|
?>
|
|
<div class="page-title"><div><h1>Updates</h1><p>Update ClamAV signatures, Sanesecurity database and check local versions.</p></div></div>
|
|
<div class="row g-4"><div class="col-lg-5"><div class="card"><div class="card-body"><h5>Quick actions</h5><form method="post" class="d-grid gap-2"><?php csrf_field(); ?><button class="btn btn-primary" name="action" value="freshclam"><i class="bi bi-arrow-repeat"></i> Update ClamAV signatures now</button><button class="btn btn-outline-primary" name="action" value="sanesecurity">Update Sanesecurity DB</button><button class="btn btn-outline-secondary" name="action" value="restart-freshclam">Restart Freshclam</button></form><p class="form-hint mt-3">Requires non-interactive sudoers for the web user.</p></div></div></div><div class="col-lg-7"><div class="card"><div class="card-body"><h5>Available databases</h5><?php if($versions): ?><table class="table table-sm"><thead><tr><th>File</th><th>Version</th><th>Modified</th></tr></thead><tbody><?php foreach($versions as $v): ?><tr><td><?= bg_e($v['name']) ?></td><td><?= bg_e($v['version']) ?></td><td><?= bg_e(date('Y-m-d H:i', $v['mtime'])) ?></td></tr><?php endforeach; ?></tbody></table><?php else: ?><p class="text-muted">No local database detected.</p><?php endif; ?></div></div></div><?php if($output): ?><div class="col-12"><div class="card"><div class="card-body"><h5>Output</h5><?php bg_render_log($output); ?></div></div></div><?php endif; ?></div>
|
|
<?php include 'includes/footer.php'; ?>
|