Initial commit: Animexe Laravel platform

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 00:01:48 +03:00
co-authored by Claude Opus 4.8
commit a63515cfc6
366 changed files with 74773 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class AdminMiddleware
{
/**
* Usage:
* ->middleware(['admin']) admin ONLY (moderators denied)
* ->middleware(['admin:animes.edit']) admin, OR moderator WITH that permission
*/
public function handle(Request $request, Closure $next, string $permission = null)
{
if (!auth()->check()) {
return redirect()->route('admin.login');
}
$user = auth()->user();
// Admins always pass
if ($user->isAdmin()) {
return $next($request);
}
// Must be at least a moderator
if ($user->role !== 'moderator') {
abort(403, 'Bu alana erişim yetkiniz yok.');
}
// Moderators always need a specific permission — no blanket access
if (!$permission || !$user->can_mod($permission)) {
if ($request->expectsJson()) {
return response()->json(['error' => 'Bu işlem için yetkiniz yok.'], 403);
}
return back()->with('error', 'Bu sayfaya erişim için gerekli izne sahip değilsiniz.');
}
return $next($request);
}
}