Files
2026-03-05 10:25:39 +01:00

23 lines
1.0 KiB
PHP

<?php
// /admin/tools/_lib_audit.php
if (!class_exists('AdminAudit')) {
final class AdminAudit {
public static function log(PDO $pdo, array $d): void {
// $d: admin_id, action, scope?, target_table?, target_id?, meta?(array), ip?, ua?
$sql = "INSERT INTO admin_audit(admin_id, action, scope, target_table, target_id, meta_json, ip, user_agent)
VALUES (:admin_id,:action,:scope,:tt,:tid,:meta,:ip,:ua)";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':admin_id' => (int)($d['admin_id'] ?? 0),
':action' => (string)($d['action'] ?? 'unknown'),
':scope' => $d['scope'] ?? null,
':tt' => $d['target_table'] ?? null,
':tid' => isset($d['target_id']) ? (int)$d['target_id'] : null,
':meta' => isset($d['meta']) ? json_encode($d['meta'], JSON_UNESCAPED_UNICODE) : null,
':ip' => isset($_SERVER['REMOTE_ADDR']) ? inet_pton($_SERVER['REMOTE_ADDR']) : null,
':ua' => substr($_SERVER['HTTP_USER_AGENT'] ?? '', 0, 255),
]);
}
}
}