Files
2026-05-09 17:32:17 +02:00

32 lines
870 B
PHP
Executable File

<?php
namespace App\Rules;
use Closure;
use Illuminate\Contracts\Validation\ValidationRule;
use RyanChandler\LaravelCloudflareTurnstile\Facades\Turnstile;
class TurnstileCheck implements ValidationRule
{
public function validate(string $attribute, mixed $value, Closure $fail): void
{
if (empty($value)) {
$fail(__(config('turnstile.error_messages.turnstile_check_message')));
return;
}
try {
$response = Turnstile::siteverify($value);
$isEnabled = setting('cloudflare_turnstile_enabled', true);
if (! $response->success && $isEnabled) {
$fail(__(config('turnstile.error_messages.turnstile_check_message')));
}
} catch (\Throwable) {
$fail(__(config('turnstile.error_messages.turnstile_check_message')));
}
}
}