Primer version funcional
This commit is contained in:
75
models/ActivityLog.php
Executable file
75
models/ActivityLog.php
Executable file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
class ActivityLog {
|
||||
public static function all($limit = 100) {
|
||||
$db = Database::getInstance();
|
||||
return $db->fetchAll(
|
||||
"SELECT al.*, u.username, u.first_name, u.last_name
|
||||
FROM activity_logs al
|
||||
LEFT JOIN users u ON al.user_id = u.id
|
||||
ORDER BY al.created_at DESC
|
||||
LIMIT ?",
|
||||
[$limit]
|
||||
);
|
||||
}
|
||||
|
||||
public static function getByUser($userId, $limit = 50) {
|
||||
$db = Database::getInstance();
|
||||
return $db->fetchAll(
|
||||
"SELECT al.*, u.username, u.first_name, u.last_name
|
||||
FROM activity_logs al
|
||||
LEFT JOIN users u ON al.user_id = u.id
|
||||
WHERE al.user_id = ?
|
||||
ORDER BY al.created_at DESC
|
||||
LIMIT ?",
|
||||
[$userId, $limit]
|
||||
);
|
||||
}
|
||||
|
||||
public static function getByAction($action, $limit = 50) {
|
||||
$db = Database::getInstance();
|
||||
return $db->fetchAll(
|
||||
"SELECT al.*, u.username
|
||||
FROM activity_logs al
|
||||
LEFT JOIN users u ON al.user_id = u.id
|
||||
WHERE al.action = ?
|
||||
ORDER BY al.created_at DESC
|
||||
LIMIT ?",
|
||||
[$action, $limit]
|
||||
);
|
||||
}
|
||||
|
||||
public static function create($userId, $action, $details = '') {
|
||||
$db = Database::getInstance();
|
||||
$db->execute(
|
||||
"INSERT INTO activity_logs (user_id, action, details, ip_address) VALUES (?, ?, ?, ?)",
|
||||
[
|
||||
$userId,
|
||||
$action,
|
||||
$details,
|
||||
$_SERVER['REMOTE_ADDR'] ?? null
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
public static function deleteAll() {
|
||||
$db = Database::getInstance();
|
||||
return $db->execute("DELETE FROM activity_logs");
|
||||
}
|
||||
|
||||
public static function deleteByUser($userId) {
|
||||
$db = Database::getInstance();
|
||||
return $db->execute("DELETE FROM activity_logs WHERE user_id = ?", [$userId]);
|
||||
}
|
||||
|
||||
public static function getDistinctUsers() {
|
||||
$db = Database::getInstance();
|
||||
return $db->fetchAll(
|
||||
"SELECT DISTINCT u.id, u.username, u.first_name, u.last_name
|
||||
FROM activity_logs al
|
||||
LEFT JOIN users u ON al.user_id = u.id
|
||||
WHERE u.id IS NOT NULL
|
||||
ORDER BY u.username"
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user