coolify/app/Http/Middleware/ApiAllowed.php

33 lines
900 B
PHP
Raw Normal View History

2024-07-01 14:26:50 +00:00
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class ApiAllowed
{
public function handle(Request $request, Closure $next): Response
{
if (isCloud()) {
return $next($request);
}
$settings = instanceSettings();
2024-07-01 14:26:50 +00:00
if ($settings->is_api_enabled === false) {
return response()->json(['success' => true, 'message' => 'API is disabled.'], 403);
}
if (! isDev()) {
if ($settings->allowed_ips) {
$allowedIps = explode(',', $settings->allowed_ips);
if (! in_array($request->ip(), $allowedIps)) {
return response()->json(['success' => true, 'message' => 'You are not allowed to access the API.'], 403);
}
2024-07-01 14:26:50 +00:00
}
}
return $next($request);
}
}