This commit is contained in:
@@ -4,29 +4,59 @@ namespace App\Helpers;
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Models\AuditTrail;
|
||||
use Illuminate\Support\Facades\Request;
|
||||
|
||||
class AuditTrailHelper
|
||||
{
|
||||
public static function AddAuditTrail($action, $activity)
|
||||
{
|
||||
$audit = new AuditTrail();
|
||||
$audit->user_id = Auth::user()->id;
|
||||
$audit->ip_address = request()->ip();
|
||||
$audit->activity = $activity;
|
||||
$audit->action = $action;
|
||||
$audit->user_agent = request()->userAgent();
|
||||
$audit->browser = substr($audit->user_agent, 0, strpos($audit->user_agent, '/'));
|
||||
$audit->save();
|
||||
}
|
||||
/**
|
||||
* Mencatat aktivitas umum (Insert, Update, Delete, Approve, Reject)
|
||||
*/
|
||||
public static function AddAuditTrail($action, $activity)
|
||||
{
|
||||
// Menggunakan guard 'admin' sesuai spesifikasi login aplikasi Anda
|
||||
$user = Auth::guard('admin')->user();
|
||||
|
||||
public static function AuthAttempt($action, $activity)
|
||||
{
|
||||
$audit = new AuditTrail();
|
||||
$audit->ip_address = request()->ip();
|
||||
$audit->activity = $activity;
|
||||
$audit->action = $action;
|
||||
$audit->user_agent = request()->userAgent();
|
||||
$audit->browser = substr($audit->user_agent, 0, strpos($audit->user_agent, '/'));
|
||||
$audit->save();
|
||||
}
|
||||
$audit = new AuditTrail();
|
||||
$audit->user_id = $user ? $user->id : null;
|
||||
$audit->ip_address = Request::ip();
|
||||
$audit->activity = $activity;
|
||||
$audit->action = $action;
|
||||
$audit->user_agent = Request::userAgent();
|
||||
$audit->browser = self::getBrowserName(Request::userAgent());
|
||||
|
||||
$audit->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Mencatat percobaan otentikasi (Login/Logout)
|
||||
*/
|
||||
public static function AuthAttempt($action, $activity)
|
||||
{
|
||||
$audit = new AuditTrail();
|
||||
$audit->user_id = Auth::guard('admin')->id(); // Tetap coba ambil ID jika ada (misal saat logout)
|
||||
$audit->ip_address = Request::ip();
|
||||
$audit->activity = $activity;
|
||||
$audit->action = $action;
|
||||
$audit->user_agent = Request::userAgent();
|
||||
$audit->browser = self::getBrowserName(Request::userAgent());
|
||||
|
||||
$audit->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper internal untuk deteksi browser yang lebih bersih
|
||||
*/
|
||||
private static function getBrowserName($userAgent)
|
||||
{
|
||||
if (!$userAgent) return 'Unknown';
|
||||
|
||||
if (strpos($userAgent, 'Opera') || strpos($userAgent, 'OPR')) return 'Opera';
|
||||
if (strpos($userAgent, 'Edge')) return 'Edge';
|
||||
if (strpos($userAgent, 'Chrome')) return 'Chrome';
|
||||
if (strpos($userAgent, 'Safari')) return 'Safari';
|
||||
if (strpos($userAgent, 'Firefox')) return 'Firefox';
|
||||
if (strpos($userAgent, 'MSIE') || strpos($userAgent, 'Trident/7')) return 'Internet Explorer';
|
||||
|
||||
return explode('/', $userAgent)[0] ?? 'Unknown';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user