webappAIO/backend/app/Http/Controllers/Api/DashboardController.php
2026-08-04 11:26:25 +03:00

37 lines
984 B
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Resources\AuditLogResource;
use App\Models\AuditLog;
use App\Models\User;
use Illuminate\Http\Request;
use Spatie\Permission\Models\Role;
class DashboardController extends Controller
{
public function stats(Request $request)
{
abort_unless($request->user()->can('dashboard.view'), 403);
$usersByRole = Role::where('name', '!=', 'super-admin')
->pluck('name')
->mapWithKeys(fn (string $role) => [$role => User::role($role)->count()]);
return response()->json([
'total_users' => User::count(),
'users_by_role' => (object) $usersByRole->all(),
]);
}
public function activity(Request $request)
{
abort_unless($request->user()->can('audit.view'), 403);
$logs = AuditLog::with('user')->latest()->limit(10)->get();
return AuditLogResource::collection($logs);
}
}