You've already forked Atomcms-edit
0c6c558a59
- Embed widget: standalone iframe player with dark/light/transparent themes, copy-paste embed code admin page - Real-time SSE: streaming now-playing/listeners/dj events, replaces polling in radio-player and embed - Song history: auto-records song changes to radio_song_plays table, Filament resource to view - DJ moderation: unified panel for shouts approval, song request queue, DJ applications - Auto DJ: playlist management with round-robin playback when no DJ is live - Refactored radio-player Alpine component to use EventSource API with auto-reconnect
127 lines
4.5 KiB
PHP
Executable File
127 lines
4.5 KiB
PHP
Executable File
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Http;
|
|
|
|
use App\Http\Middleware\AdminSecurityMiddleware;
|
|
use App\Http\Middleware\ApiResponseCache;
|
|
use App\Http\Middleware\Authenticate;
|
|
use App\Http\Middleware\RadioApiKey;
|
|
use App\Http\Middleware\BannedMiddleware;
|
|
use App\Http\Middleware\DDoSTrackingMiddleware;
|
|
use App\Http\Middleware\EncryptCookies;
|
|
use App\Http\Middleware\FindRetrosMiddleware;
|
|
use App\Http\Middleware\ForceStaffTwoFactorMiddleware;
|
|
use App\Http\Middleware\InjectPwaMeta;
|
|
use App\Http\Middleware\InstallationMiddleware;
|
|
use App\Http\Middleware\LocalizationMiddleware;
|
|
use App\Http\Middleware\LogViewerMiddleware;
|
|
use App\Http\Middleware\MaintenanceMiddleware;
|
|
use App\Http\Middleware\PreventRequestsDuringMaintenance;
|
|
use App\Http\Middleware\RealClientIpMiddleware;
|
|
use App\Http\Middleware\RedirectIfAuthenticated;
|
|
use App\Http\Middleware\SetThemeMiddleware;
|
|
use App\Http\Middleware\SystemCheck;
|
|
use App\Http\Middleware\TrimStrings;
|
|
use App\Http\Middleware\TrustProxies;
|
|
use App\Http\Middleware\VerifyCsrfToken;
|
|
use App\Http\Middleware\VPNCheckerMiddleware;
|
|
use Illuminate\Auth\Middleware\AuthenticateWithBasicAuth;
|
|
use Illuminate\Auth\Middleware\Authorize;
|
|
use Illuminate\Auth\Middleware\EnsureEmailIsVerified;
|
|
use Illuminate\Auth\Middleware\RequirePassword;
|
|
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
|
|
use Illuminate\Foundation\Http\Kernel as HttpKernel;
|
|
use Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull;
|
|
use Illuminate\Foundation\Http\Middleware\ValidatePostSize;
|
|
use Illuminate\Http\Middleware\HandleCors;
|
|
use Illuminate\Http\Middleware\SetCacheHeaders;
|
|
use Illuminate\Routing\Middleware\SubstituteBindings;
|
|
use Illuminate\Routing\Middleware\ThrottleRequests;
|
|
use Illuminate\Routing\Middleware\ValidateSignature;
|
|
use Illuminate\Session\Middleware\AuthenticateSession;
|
|
use Illuminate\Session\Middleware\StartSession;
|
|
use Illuminate\View\Middleware\ShareErrorsFromSession;
|
|
use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful;
|
|
|
|
class Kernel extends HttpKernel
|
|
{
|
|
/**
|
|
* The application's global HTTP middleware stack.
|
|
*
|
|
* These middleware are run during every request to your application.
|
|
*
|
|
* @var array<int, class-string|string>
|
|
*/
|
|
#[\Override]
|
|
protected $middleware = [
|
|
SystemCheck::class,
|
|
RealClientIpMiddleware::class,
|
|
TrustProxies::class,
|
|
HandleCors::class,
|
|
PreventRequestsDuringMaintenance::class,
|
|
ValidatePostSize::class,
|
|
TrimStrings::class,
|
|
ConvertEmptyStringsToNull::class,
|
|
SetThemeMiddleware::class,
|
|
InjectPwaMeta::class,
|
|
];
|
|
|
|
/**
|
|
* The application's route middleware groups.
|
|
*
|
|
* @var array<string, array<int, class-string|string>>
|
|
*/
|
|
#[\Override]
|
|
protected $middlewareGroups = [
|
|
'web' => [
|
|
EncryptCookies::class,
|
|
AddQueuedCookiesToResponse::class,
|
|
StartSession::class,
|
|
ShareErrorsFromSession::class,
|
|
VerifyCsrfToken::class,
|
|
SubstituteBindings::class,
|
|
LocalizationMiddleware::class,
|
|
InstallationMiddleware::class,
|
|
],
|
|
|
|
'api' => [
|
|
EnsureFrontendRequestsAreStateful::class,
|
|
ThrottleRequests::class . ':api',
|
|
SubstituteBindings::class,
|
|
ApiResponseCache::class,
|
|
],
|
|
];
|
|
|
|
/**
|
|
* The application's middleware aliases.
|
|
*
|
|
* Aliases may be used to conveniently assign middleware to routes and groups.
|
|
*
|
|
* @var array<string, class-string|string>
|
|
*/
|
|
#[\Override]
|
|
protected $middlewareAliases = [
|
|
'auth' => Authenticate::class,
|
|
'auth.basic' => AuthenticateWithBasicAuth::class,
|
|
'auth.session' => AuthenticateSession::class,
|
|
'cache.headers' => SetCacheHeaders::class,
|
|
'can' => Authorize::class,
|
|
'guest' => RedirectIfAuthenticated::class,
|
|
'password.confirm' => RequirePassword::class,
|
|
'signed' => ValidateSignature::class,
|
|
'throttle' => ThrottleRequests::class,
|
|
'verified' => EnsureEmailIsVerified::class,
|
|
'maintenance' => MaintenanceMiddleware::class,
|
|
'check.ban' => BannedMiddleware::class,
|
|
'findretros.redirect' => FindRetrosMiddleware::class,
|
|
'vpn.checker' => VPNCheckerMiddleware::class,
|
|
'log.viewer' => LogViewerMiddleware::class,
|
|
'force.staff.2fa' => ForceStaffTwoFactorMiddleware::class,
|
|
'ddos.track' => DDoSTrackingMiddleware::class,
|
|
'admin.security' => AdminSecurityMiddleware::class,
|
|
'radio.api' => RadioApiKey::class,
|
|
];
|
|
}
|