37 lines
984 B
PHP
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);
|
|
}
|
|
}
|