BastionGuard/webui/update.php
specialworld83 f0f913a209 Release 2.0
2026-07-15 10:52:22 +02:00

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'; ?>