Complete Phase 1: MVC, DB migrations, Auth, RBAC, Security, and Views
This commit is contained in:
33
app/Services/Database/ActivityLogger.php
Normal file
33
app/Services/Database/ActivityLogger.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Database;
|
||||
|
||||
use App\Core\Request;
|
||||
use PDO;
|
||||
|
||||
class ActivityLogger
|
||||
{
|
||||
private PDO $pdo;
|
||||
private Request $request;
|
||||
|
||||
public function __construct(Connection $connection, Request $request)
|
||||
{
|
||||
$this->pdo = $connection->getPdo();
|
||||
$this->request = $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* Log user or system activity.
|
||||
*/
|
||||
public function log(?int $userId, string $action, ?string $description = null): void
|
||||
{
|
||||
$ip = $this->request->getIp();
|
||||
$ua = $this->request->getUserAgent();
|
||||
|
||||
$sql = "INSERT INTO activity_logs (user_id, action, description, ip_address, user_agent)
|
||||
VALUES (?, ?, ?, ?, ?)";
|
||||
|
||||
$stmt = $this->pdo->prepare($sql);
|
||||
$stmt->execute([$userId, $action, $description, $ip, $ua]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user