initial commit

This commit is contained in:
2026-09-23 12:45:02 +07:00
parent d16f454083
commit 507fc6ccdf
235 changed files with 19587 additions and 2835 deletions
+1 -1
View File
@@ -20,7 +20,7 @@ class AdminMiddleware
// 2. Ambil slug role (Mendukung sistem baru yang kita buat)
// Kita gunakan optional() agar jika user tidak punya role, aplikasi tidak crash.
$roleSlug = optional(auth()->user()->role)->slug ?? auth()->user()->role;
$roleSlug = auth()->user()->roleModel?->slug ?? auth()->user()->getRawOriginal('role');
// 3. Logika Existing Anda (Tetap Dipertahankan)
if ($roleSlug !== 'admin') {
@@ -0,0 +1,30 @@
<?php
namespace App\Http\Middleware;
use App\Models\ApiToken;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class AuthenticateApiToken
{
public function handle(Request $request, Closure $next): Response
{
$plain = $request->bearerToken();
if (!$plain) {
return response()->json(['message' => 'Token akses tidak ditemukan.'], 401);
}
$token = ApiToken::with('user')->where('token_hash', hash('sha256', $plain))->first();
if (!$token || !$token->user || ($token->expires_at && $token->expires_at->isPast())) {
return response()->json(['message' => 'Token akses tidak valid atau sudah kedaluwarsa.'], 401);
}
$token->forceFill(['last_used_at' => now()])->saveQuietly();
$request->setUserResolver(fn () => $token->user);
$request->attributes->set('api_token', $token);
return $next($request);
}
}